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

时间:2016-08-24 07:03:41

标签: php file-handling

我有一个用于提示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);
}
?>

1 个答案:

答案 0 :(得分:0)

该缺陷是由文件名中的空格引起的,例如F 1_Open_marksheet.csv,我用连字符替换为F_1_Open_marksheet.csv。致@CBroe分享上述评论中的链接。