【发布时间】:2014-02-21 22:53:33
【问题描述】:
firefox 下载的文件名中的空格好像有问题...
header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename='.$filename);
$fp = fopen('php://output', 'w');
fputs($fp, $csvdata);
fclose($fp);
这是一个名为:Test_ Grad Fair 2_20140129_1312_607.csv的文件示例
当我尝试使用上面的代码和 FireFox 下载文件时,会发生以下情况。 (主要问题是它删除了文件扩展名!)
当我尝试从 Safari 或 Chrome 下载它时:
我知道一个解决方案可能是这样做:
$filename = str_replace(' ', '', $filename);
但是,我更愿意弄清楚为什么 FireFox 会出现这个问题,文件名中不能有空格似乎有点荒谬。这会不会像 %20 而不是空间问题?
【问题讨论】:
-
要在线托管的文件名中的空格通常是一个坏主意。重命名文件比等待 Firefox 没有这个问题要容易得多。
-
您是否真的尝试过
%20或+?还是urlencode()? -
@ElendilTheTall 如果我的客户上传了一个文件并想使用原始文件名下载它确实是最好的选择。如果有解决办法,这样的技术问题给我的网站用户带来不便,真的很奇怪。