从标题下载时缺少文件扩展名

时间:2013-04-14 20:55:23

标签: php apache .htaccess http-headers

我正在使用下面的代码下载一个文件,哪个工作很好,但问题是文件扩展名丢失,即使在压力下载后也是如此。我尝试将其更改为其他MIME类型,可能是什么问题,我该如何解决?

header('Content-Type: audio/mp3');
header("Content-Disposition: attachment; filename=$row[3]");
header("Content-Length: ".filesize("$row[1]$row[2]"));
$fp = fopen("$row[1]$row[2]", "r");
fpassthru($fp);
fclose($fp);

注意:$ row数组中的值很好。

3 个答案:

答案 0 :(得分:5)

这里只是在黑暗中拍摄,可能是文件名中有空格吗?在这种情况下,您可以尝试在文件名周围添加双引号,在省略空格后会有关于部分的报告(例如:http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download

编辑:正如评论中所讨论的,标题没有返回扩展名,因此在后端手动添加.mp3扩展名解决了这个问题。

答案 1 :(得分:0)

您可以尝试在文件名周围添加转义引号,如下所示:

header("Content-Disposition: attachment; filename=\"$row[3]\"");

答案 2 :(得分:0)

对Patrick回复的修改

header("Content-Disposition: attachment; filename="."\"{$fname}\"");