标签:php curl large-files download
好的,我有一个问题,希望你能帮我解决.
我正在运行一个存储视频文件的服务器,这些文件非常大,有些高达650 MB.我需要用户能够请求此页面并将文件下载到他们的计算机上.我已经尝试了所有的东西,但是一个普通的readfile()请求在退出之前会挂起大约90秒并且给我一个“没有数据收到错误324代码”,我从几个网站找到的一个chunked readfile脚本甚至没有开始下载,FTP通过PHP解决方案什么也没做,但在我试图获取文件时给我错误,我发现的唯一cURL解决方案只是在我的服务器上创建另一个文件.这不是我需要的.
为了清楚起见,我需要用户能够将文件下载到他们的计算机而不是服务器.
我不知道这个代码是垃圾还是只需要一两个调整,但任何帮助都表示赞赏!
<?php
$fn = $_GET["fn"];
echo $fn."<br/>";
$url = $fn;
$path = "dl".$fn;
$fp = fopen($path, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
解决方法:
我不建议使用PHP或任何其他脚本技术来提供大型二进制文件.他们从来没有为此设计 – 你可以使用apache,nginx或后端的任何标准http服务器.如果你仍然需要使用PHP,那么你应该检查readfile_chunked.
http://php.net/readfile#48683
这是一个很棒的教程.
http://teddy.fr/blog/how-serve-big-files-through-php
祝好运.
标签:php,curl,large-files,download 来源: https://codeday.me/bug/20190626/1290099.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。