0

我正在使用 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 位服务器之外,还有其他潜在的解决方案吗?

4

1 回答 1

1

在 32 位机器上,您被 Linux 限制在 2GB 文件大小限制(请参阅http://linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit.html)。

您可能需要考虑将整个文件拆分为一些较小的块,或者使用 64 位机器。通常,出于性能目的,在许多系统中通过块实现避免大于 GB 的文件。

于 2012-07-26T20:07:28.477 回答