4

我有上传到网站的文件,其中可能包含空格,例如:

    file name 1.wav

它在上传时正常显示,但是当尝试从 Chrome 和 Firefox 下载文件时,我得到以下结果:

  Chrome downloaded: file name 1.wav (perfect)
  firefox downloaded: file (bad) 

名称 1.wav 已从名称中删除。PHP中是否有任何特定功能可以解决Firefox中的这个问题?

代码:

   <?= str_replace(array("'",'"'), array("&#39;","&quot;"), stripslashes($sFileTitle)) ?>', '<?=$f['fileExtension']?>'

当我检查应该下载文件的锚标记上的元素时,会出现以下内容:

  <a title="file name 1.wav" fileid="254" class="docLink">file name 1.wav</a>

我使用 JQuery 重定向到正确的路径。

使固定:

添加 urlencode($file) 修复了它,但出现了一个新问题。现在文件名

    file name 1.wav

下载时变成:

    file+name+1.wav

下载后是否可以用空格替换+?urldecode 没用

解决方案:

如果其他人在这里遇到同样的问题,我是如何解决的:

而不是 urlencode/decode 我只是这样做:

 '"' . stripslashes($file) . '"'

它修复了它

4

1 回答 1

3
<?php
      header("Content-Disposition: attachment; filename=\"$filename\"");
?>
于 2012-10-02T16:13:11.957 回答