Что касается загрузки файлов и определения заголовков, у меня возникли проблемы с назначением динамических filename
для моих файлов. При использовании кода ниже:Каков правильный синтаксис для определения имени файла с переменными?
header("Content-Disposition: attachment; filename=test.csv");
test.csv
создается файл для загрузки. Однако, если я использую это:
header('Content-Disposition: attachment; filename=' . $filename . '.csv');
Он генерирует .php
файл вместо. Использование этого метода также не передает Content-Disposition
или filename
в заголовок.
Полный код:
session_start();
$file =$_SESSION['csvf'];
$filename = $file."_".date("Y-m-d_H-i",time());
header ("Content-type: text/csv");
header("Content-Disposition: attachment; filename=test.csv");
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
print($file);
exit();
Что такое правильный синтаксис?
EDIT
Рабочий код после предложения
session_start();
$file = $_SESSION ['csvf'];
$filename =date ("Y-m-d_H-i", time());
header ("Content-type: text/csv");
header ("Content-Disposition: attachment; filename=".$filename);
header ('Expires: 0');
header ('Cache-Control: must-revalidate');
header ('Pragma: public');
header ('Content-Length: ' . filesize ($file));
print ($file) ;
exit();
'var_dump' переменная' $ filename' и посмотреть, что она содержит ... вы также можете ее обрезать для trailing '' 'или' '' –
Где находится фактический файл? Я также вижу, re, используя 'filesize ($ file)' и в то же время используя '$ file' для' $ filename', это не имеет для меня никакого смысла, просим пояснить. –
@PedroLobito Ye, серьезная ошибка. Я удалил '$ file' из' $ filename'. – b0w3rb0w3r