文件下载功能无法附上完整的文件名和扩展名

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。