每当存在名称为space
的{{1}}的CSV文件时,我们就会遇到通过PHP代码下载的问题,而其他类似的内容没有任何空间,可以正常工作并正常下载。
以下是我的下载代码:
xyz abc.csv
当文件下载时,它始终为$file_path = 'http://www.servername.com/subfolder/subfolder/';
$file = urlencode('Today new_18-10-2012_21-13-21.csv');
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Pragma: no-cache');
readfile($file_path.$file);
,而原始文件的大小为0 bytes
对此问题的任何建议。
提前致谢!
答案 0 :(得分:0)
使用此代码。它可能对你有所帮助。但我认为主要问题是间距。
$Filename = 'Today new_18-10-2012_21-13-21.csv';
$path = "http://www.servername.com/subfolder/subfolder/";
$file = $path.$filename;
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/csv");
header("Content-Transfer-Encoding: binary");
readfile($file);
答案 1 :(得分:0)
试试这个......您必须使用rawurlencode
代替urlencode
。
$file_path = 'http://www.servername.com/subfolder/subfolder/';
//just filename, no need to save file with url encoded name!
$file = 'Today new_18-10-2012_21-13-21.csv';
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="' . $file . '"');
header('Pragma: no-cache');
//here comes url encoding
readfile($file_path . rawurlencode($file));
它对我来说很好......