物理内存警告
Physical memory warning
<?php
file_put_contents("10gb.zip", fopen("http://website.website/10GB.zip", 'r'));
echo "File Downloaded!";
我正在使用此代码将文件从 url 下载到我的服务器。但是当我 运行 我的代码时 我的 hosing 服务器内存变成红色! -_- 我的下载卡在 3.79 GB。
下载大文件有限制吗?我想用 5 个进程下载超过 50 GB 的文件!可能吗?
我会在处理大文件时选择流式传输而不是直接复制它们
来自此处提供的示例:http://php.net/manual/en/function.stream-copy-to-stream.php
你可以试试:
<?php
function pipe_streams($in, $out)
{
while (!feof($in))
fwrite($out,fread($in,8192));
}
pipe_streams("http://website.website/10GB.zip", "10gb.zip");
?>
或使用 curl
(http://php.net/manual/en/book.curl.php) :
<?php
$url = "http://website.website/10GB.zip";
$path = "10gb.zip";
$fp = fopen($path, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
检查此 https://www.sitepoint.com/performant-reading-big-files-php/ 以获得更多流媒体选项
<?php
file_put_contents("10gb.zip", fopen("http://website.website/10GB.zip", 'r'));
echo "File Downloaded!";
我正在使用此代码将文件从 url 下载到我的服务器。但是当我 运行 我的代码时 我的 hosing 服务器内存变成红色! -_- 我的下载卡在 3.79 GB。
下载大文件有限制吗?我想用 5 个进程下载超过 50 GB 的文件!可能吗?
我会在处理大文件时选择流式传输而不是直接复制它们
来自此处提供的示例:http://php.net/manual/en/function.stream-copy-to-stream.php
你可以试试:
<?php
function pipe_streams($in, $out)
{
while (!feof($in))
fwrite($out,fread($in,8192));
}
pipe_streams("http://website.website/10GB.zip", "10gb.zip");
?>
或使用 curl
(http://php.net/manual/en/book.curl.php) :
<?php
$url = "http://website.website/10GB.zip";
$path = "10gb.zip";
$fp = fopen($path, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
检查此 https://www.sitepoint.com/performant-reading-big-files-php/ 以获得更多流媒体选项