文件下载功能无法附上完整的文件名和扩展名
File download function fails to attach complete file name and extension
我有一个用于提示下载 CSV 文件的功能。但是,文件名在 Mozilla 浏览器中无法完成,但在 Chrome 中运行良好。例如,如果文件名应该是 F1_Open_marksheet.csv,Mozilla 将提示下载为 F1(缺少文件名和扩展名的其余部分。会不会是我的代码有问题?
<?php
function pushDownloadFile($filename){
header('Content-Description: File Transfer');
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
ob_clean();
flush();
readfile($filename);
unlink($filename);
}
?>
该缺陷是由文件名中的白色 space 引起的,例如 F 1_Open_marksheet.csv 我将其替换为 F_1_Open_marksheet.csv 的连字符。感谢@CBroe 在上面的评论中分享 link。
我有一个用于提示下载 CSV 文件的功能。但是,文件名在 Mozilla 浏览器中无法完成,但在 Chrome 中运行良好。例如,如果文件名应该是 F1_Open_marksheet.csv,Mozilla 将提示下载为 F1(缺少文件名和扩展名的其余部分。会不会是我的代码有问题?
<?php
function pushDownloadFile($filename){
header('Content-Description: File Transfer');
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
ob_clean();
flush();
readfile($filename);
unlink($filename);
}
?>
该缺陷是由文件名中的白色 space 引起的,例如 F 1_Open_marksheet.csv 我将其替换为 F_1_Open_marksheet.csv 的连字符。感谢@CBroe 在上面的评论中分享 link。