为什么下载的文件为0字节?

时间:2019-03-22 22:30:22

标签: php

用户下载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

2 个答案:

答案 0 :(得分:2)

您的问题可能是配置问题。

  

在php.ini From Here中必须记住allow_url_fopen =

另一种替代方法可能是改用以下代码并将其保存到本地文件系统中。

$localPath = "tmp/foo.mp3";
$contents = file_get_contents($file);
$save = file_put_contents($localPath, $contents);

答案 1 :(得分:1)

这是服务器问题,PHP设置为旧的5版本,所以当我将版本更改为7时,它工作正常。