0

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

似乎没有任何文档或谈论这个。

有人有想法么?

4

2 回答 2

2

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

使用 curl 下载大文件

如何使用 cURL 部分下载远程文件?

基本上你可能会遇到两个问题:

  • 您首先要读入内存,因为这样会耗尽 PHP 的内存分配
  • 您需要分块下载文件以克服 HTTP 协议中的某些限制。

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

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

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

于 2012-07-29T16:59:25.040 回答
0

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

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

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

于 2012-07-29T17:06:19.407 回答