【发布时间】:2012-07-25 11:43:28
【问题描述】:
我正在使用 Resumable.js 库以 1 MB 的块上传文件,然后在 32 位 linux 服务器(PHP 5.3.14、Apache 2.0)上使用 PHP 将它们拼凑在一起
这很好用,除了超过 2GB 的文件。
当我上传大于 2GB 的文件时,它似乎工作正常,但当您实际查看文件属性时,大小始终为 2147483648 字节。
根据我的阅读,我理解这是 PHP 使用 32 位整数的限制。
我已阅读到设置 CFLAGS="-D_FILE_OFFSET_BITS=64" 标志并重新编译 PHP 将允许 PHP 打开大于 2GB 的文件。
我的问题是,如果我这样做,这会解决我的问题,还是打开文件不仅仅是问题,还有文件的附加?
如果这能解决我的 2GB 问题,是否还有(更高的)理论上的最大文件大小?
如果我完全偏离了基础并且这个标志不能解决我的问题,除了切换到 64 位服务器之外,还有其他潜在的解决方案吗?
【问题讨论】:
-
哪个文件系统?通常 PHP 对大文件没有问题(即使我总是建议您使用 64 位系统),因此我猜这是使用的文件系统的限制。
标签: php file-io append 32-bit chunks