CSV从PHP空间问题下载

时间:2012-10-19 05:21:45

标签: php csv download

每当存在名称为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

对此问题的任何建议。

提前致谢!

2 个答案:

答案 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));

它对我来说很好......