绕过PHP CURL 2GB下载限制

时间:2012-07-29 16:53:11

标签: php linux curl centos

我正在尝试使用php-curl下载一个7GB的文件,但它似乎只会下载第一个2GB。

似乎没有任何文件或谈论此事。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:2)

以下是关于该主题的两个有用链接:

Downloading a large file using curl

How to partially download a remote file with cURL?

基本上你可能有两个问题:

  • 您正在读取内存,因为这样耗费精力的PHP内存分配
  • 您需要下载文件以克服HTTP协议中的某些限制。

还有文件系统限制,而不是检查@ajreal提到的文件系统类型(即FAT32有4GB的限制,99%的可能你不使用FAT,但它仍然是一个例子)。

正如OP发现它与数据库有关:

  

原来这是一个数据库问题。文件大小存储在mysql中   数据库,大小以字节为单位,“int”列的最大大小为   2147483648.将列类型更改为“bigint”修复了问题。

答案 1 :(得分:0)

假设您的文件系统可以处理大于2GB的文件,您可以尝试使用copy

copy("http:://example.org/your_file","/tmp/your_file");

还要确保设置了适当的时间限制(使用set_time_limit(...))。