我在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);
}
答案 0 :(得分:2)
您应该尝试使用“\”来转义空格。
像这样:
$filename = str_replace( ' ', '\ ', $filename );
答案 1 :(得分:-1)
您是否尝试过使用urlencode? p>