2

我正在使用下面的代码下载一个文件,它工作得很好,但问题是文件扩展名丢失了,即使在有压力的下载之后也是如此。我尝试将其更改为其他 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 数组中的值很好。

4

3 回答 3

6

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

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

于 2013-04-14T21:01:40.303 回答
0

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

header("Content-Disposition: attachment; filename=\"$row[3]\"");
于 2013-04-14T20:59:59.570 回答
0

升技修改帕特里克答案

header("Content-Disposition: attachment; filename="."\"{$fname}\"");
于 2015-02-03T04:20:20.563 回答