Экспорт Php — csv добавить абсолютный путь к выводу

#php #csv

#php #csv

Вопрос:

Можно ли добавить абсолютный путь http://domain к filename.jpg ? Я не хочу редактировать файл csv и добавлять его вручную в домен (http://).

База данных SQL

ID заголовок имя файла
1 заголовок 1 имя файла 1.jpg
2 заголовок 2 имя файла 2.jpg
3 заголовок 3 имя файла 3.jpg
4 заголовок 4 имя файла 4.jpg
 $sql = "SELECT caption, filename
FROM table"

$result = $database->query($sql);

function getRow($result) {
   return $result->fetch_assoc();
}

if (isset($_POST['download'])) {
    $file_name = 'csv_file.csv';
    header('Content-Type: text/csv');
    header("Content-Disposition: attachment;filename=$file_name");
    header('Cache-Control: no-cache, no-store, must-revalidate');
    header('Pragma: no-cache');
    header('Expires: 0');
    $csvoutput = fopen('php://output', 'w');
    $row = getRow($result);
    $headers = array_keys($row);
    fputcsv($csvoutput, $headers);
    fputcsv($csvoutput, $row);
    while ($row = getRow($result)) {
        fputcsv($csvoutput, $row);
    }
    fclose($csvoutput);
    exit;
}
 

Вывод CSV

Жаль, что у меня не было такого результата. Теперь только то, что filename.jpg — filename2.jpg …

ID заголовок имя файла
1 заголовок 1 http://domain/filename1.jpg
2 заголовок 2 http://domain/filename2.jpg
3 заголовок 3 http://domain/filename3.jpg
4 заголовок 4 http://domain/filename4.jpg

Комментарии:

1. Имена файлов никогда не являются URL-адресами . URL-адреса должны присутствовать для кнопки загрузки.

2. @nice_dev я не понимаю. Можете ли вы привести мне какой-нибудь пример?

3. Имена файлов должны отображаться непосредственно в виде имен, поскольку они находятся на диске. Если пользователь хочет загрузить его, вы можете создать ссылку с тегом привязки в качестве опции загрузки. Какой смысл использовать имена файлов в качестве HTTP-URL-адресов?

4. @nice_dev What's the point of having file names as http URLs? для интернет-магазинов

5. @nice_dev Мне нужно отправить csv-файл с 65 000 записей с полным путем для изображений.

Ответ №1:

Это то, что вы ищете?

 $sql = "SELECT caption, concat('http://example.com/', filename) as filename
FROM table";
 

Комментарии:

1. серьезно, это было так просто 🙂 Я не знал, что это может быть так, и я потратил на это 2 дня