Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP copy()最大大小问题_Php_Download_Copy_Php Ini - Fatal编程技术网

PHP copy()最大大小问题

PHP copy()最大大小问题,php,download,copy,php-ini,Php,Download,Copy,Php Ini,今天,我将一个下载脚本从发布服务器转移到QNAP上,该服务器基本上使用copy从URL下载视频。出于某种原因,我下载的任何视频都是33378304字节。我的php.ini文件被设置为3600 timeout,它没有任何区别,其他人有这个问题吗 当我直接使用 # php <script path> 忽略php.ini并下载完整文件,配置文件中一定缺少一行 任何帮助都将不胜感激,谢谢 upload_max_filesize设置为2047M这是一个解决方案,而不是问题的解决方案,但是您是

今天,我将一个下载脚本从发布服务器转移到QNAP上,该服务器基本上使用copy从URL下载视频。出于某种原因,我下载的任何视频都是33378304字节。我的php.ini文件被设置为3600 timeout,它没有任何区别,其他人有这个问题吗

当我直接使用

# php <script path>
忽略php.ini并下载完整文件,配置文件中一定缺少一行

任何帮助都将不胜感激,谢谢


upload_max_filesize设置为2047M

这是一个解决方案,而不是问题的解决方案,但是您是否尝试过使用execcp$src$dst或systemcp$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'");
    }
}

我使用copy从URL下载,afaik cp不做同样的工作。你可以使用wget。systemwget-O$dst$url。您有权访问为该文件提供服务的http服务器吗?你能看到那里报告的关于传输的任何错误吗?出于某种原因,wget不适用于此URL。我无法查看日志。它被设置为“post\u max\u size=2047 m”OK。您在问题中没有提到它,这通常是一个麻烦的来源。没关系,我已经盯着这个php.ini文件好几个小时了,但运气不好。您的php内存限制设置为多少?32 Mb可能?33378304字节是31mb-尝试grep您的php.ini并找到31可能会对您有所帮助。@hadvig文件中没有31。@sander marechal内存限制设置为256M。这是php.ini中的说明还是用phpinfo替换复制调用时的说明?脚本可以更改内存限制。在php.ini中可能是256M,但脚本会动态地将其设置为32M。