【发布时间】:2019-08-13 23:18:18
【问题描述】:
我在用户下载 mp3 文件时触发了此代码
$file = $_GET['file'];
$ext = pathinfo($file, PATHINFO_EXTENSION);
$match_array =array('pdf','mp3','mpa','ra','wav','wma','mid','m4a','m3u','iff','aif');
if(in_array($ext,$match_array)){
header("Content-type: application/".$ext);
header("Content-Disposition: attachment; filename=". $file);
readfile($file);
}
但下载的文件是 0 字节,这是什么问题?
文件存在且$file 包含此值
https://mysite/upload/1/myfile.mp3
【问题讨论】:
-
如果您将该 URL 直接放在浏览器中,它会下载文件吗?您是否检查过您的
if语句是否有效?您是否检查过是否启用了正确的包装器以允许将 URL 作为参数放入 readFile 方法? (有关最后一个问题的说明,请参阅 php.net/manual/en/function.readfile.php) -
@ADyson 不打开/流式传输文件
-
好的。但这至少可以确认 URL 是正确的。现在你需要检查我的另外两点
-
@ADyson 检查现在是
1
标签: php