我今天从我的发布服务器将下载脚本转移到我的 QNAP 上,它基本上使用 copy() 从 URL 下载视频。出于某种原因,我下载的任何视频都恰好是 33,378,304 字节。我的 php.ini 文件设置为 3600 超时,它没有一点区别,其他人有这个问题吗?
当我直接使用运行脚本时
# php <script path>
php.ini 被忽略并下载完整文件,配置中必须缺少一行。
任何帮助将不胜感激,谢谢!
upload_max_filesize 设置为 2047M
这是一种变通方法,而不是问题的解决方案,但您是否尝试过使用exec("cp $src $dst")
或system("cp $src $dst")
据我所知,PHP 中的命令没有限制,copy()
这使得这是一个奇怪的错误。
你也改变了post_max_size
价值吗?
-
编辑
一些视频服务器通过禁止下载视频的特定部分来保护自己(我在尝试下载视频流时已经遇到了同样的问题)。
作为一种解决方法,您可以使用此脚本逐段下载视频:
function fragmented_download($url, $destination)
{
$headers = get_headers($url, 1);
$downloadsize = $headers["Content-Length"];
for ($filesize = 0 ; $filesize < $downloadsize ; $filesize = filesize($destination))
{
exec("wget --continue --output-document='$destination' '$url'");
}
}