2012-07-26 65 views
0

我使用Resumable.js库上传的1个MB块的文件,然后拼凑他们重新走到一起使用32位Linux服务器上的PHP(PHP 5.3.14,阿帕奇2.0 )附加文件大块到2GB的文件使用PHP

这是工作很好,除了超过2GB的文件。

当我上传的文件大于2GB,它似乎做工精细,但是当你真正查看文件属性的大小始终是2147483648个字节。

从我读书,我明白这是PHP的使用32位整数的限制。

我已阅读,设置CFLAGS =“ - D_FILE_OFFSET_BITS = 64”标志,并重新编译PHP将让PHP打开大于2GB的文件。

我的问题是,如果我这样做,将在解决我的问题,或者是打开文件的不只是这个问题,但该文件的追加呢?

如果这将解决我的问题2GB,还会出现有(高)的理论最大文件大小?

如果我完全关闭基地,该标志将不解决我的问题,有没有除了切换到64位服务器的任何其他可能的解决方案?

+1

哪个文件系统?通常PHP不会遇到大文件的问题(即使我会推荐你​​使用64位系统),因此我想这是对所用文件系统的限制。 – KingCrunch 2012-07-26 19:54:19

回答

1

你停留在2GB的文件大小限制的Linux在32位机器(见http://linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit.html)。

你可能要考虑保持总文件分割成一些较小尺寸的块,或者得到一个64位的机器。通常情况下,为了达到性能目的,通常会在块实现上避免大于GB的文件。

+0

嗯...嗯,我能够通过FTP上传大于2GB的文件.... 对不起,我想我是在32位基于这样的事实,我知道一个32位版本的假设Linux操作系统的PHP被安装。 如果是32位或64位,我必须让我的客户端验证他的共享主机。 由于我可以通过FTP上传超过2GB的文件,这似乎表明我已经安装了32位版本的PHP的64位操作系统? – user1555774 2012-07-27 00:39:03

+0

这是非常可能的 - 我曾经遇到过一个Redhat服务器的问题,即使机器是64位,它也带有许多软件的32位版本。 – Pyrce 2012-07-27 16:33:48

+0

仍然在等待以确定服务器是32位还是64位,但我们假设它是64位操作系统(因为我可以通过FTP上传大于2GB的文件),并使用32位PHP版本。你认为设置CFLAGS =“ - D_FILE_OFFSET_BITS = 64”标志并重新编译PHP会解决我的问题,还是需要安装64位版本的PHP? – user1555774 2012-07-27 16:51:45