想要在文件名中创建一个包含特殊字符的下载功能

时间:2012-03-09 08:13:17

标签: php zend-framework

我在php中创建了一个下载函数,其中文件中包含特殊字符。 但是在下载文件时,文件名会从某些特殊字符中断开。 主要是在文件名中获取空格。 我的下载功能就是这个。

function download(){
            $filename = "google _(){}[]valentine~!@#$%^&*()_+`1=-.flv";
            $filepath = "uploads/" . $filename;
            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            //setting content type of page
            header("Content-Type: application/force-download");
            header("Content-Disposition: attachment; filename=" . $filename);
            header("Content-Description: File Transfer");
            //Read File it will start downloading
            readfile($filepath);
}

2 个答案:

答案 0 :(得分:2)

您应该尝试使用“\”来转义空格。

像这样:

$filename = str_replace( ' ', '\ ', $filename );

答案 1 :(得分:-1)