加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP用cURL下载一个巨大的电影文件(500 MB)

发布时间:2020-12-13 17:12:12 所属栏目:PHP教程 来源:网络整理
导读:好的,我有一个问题,希望你能帮我解决. 我正在运行一个存储视频文件的服务器,这些文件非常大,有些高达650 MB.我需要用户能够请求此页面并将文件下载到他们的计算机上.我已经尝试了所有的东西,但是一个普通的readfile()请求在退出之前会挂起大约90秒并且给我一
好的,我有一个问题,希望你能帮我解决.

我正在运行一个存储视频文件的服务器,这些文件非常大,有些高达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

祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读