好的,我有一个问题希望你能帮我解决。
我正在运行一个存储非常大的视频文件的服务器,有些文件高达 650 MB。我需要一个用户能够请求这个页面并将文件下载到他们的机器上。我已经尝试了所有方法,但是一个普通的 readfile() 请求在退出前挂起大约 90 秒,并给我一个“没有收到数据错误 324 代码”,我从几个网站找到的分块读取文件脚本甚至没有开始下载,通过 PHP 解决方案的 FTP 在我尝试获取文件时只给我错误,而我发现的唯一 cURL 解决方案只是在我的服务器上创建另一个文件。那不是我需要的。
明确我需要用户能够下载文件到他们的计算机和< strong>不是服务器。
我不知道这段代码是垃圾还是只需要一两次调整,但我们非常感谢您的帮助!
<?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 下载一个巨大的电影文件 (500 MB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958264/