我正在使用下面的代码下载一个文件,它运行良好,但问题是文件扩展名丢失,即使在紧张的下载之后也是如此。我已尝试将其更改为其他 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 数组中的值没有问题。
最佳答案
这里是瞎猜的,会不会是文件名里面有空格?在这种情况下,您可以尝试在文件名周围添加双引号,有关于省略空格后的部分的报告(例如此处:http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download)
编辑:如评论中所述, header 未返回扩展名,因此在后端手动添加 .mp3 扩展名可解决此问题。
关于php - 从 header 下载时缺少文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004231/