我正在使用Resumable.js库以1 MB的块上传文件,然后在32位Linux服务器上使用PHP将它们拼凑回来(PHP 5.3.14,Apache 2.0)
除了2GB以上的文件外,这种方法很有效。
当我上传大于2GB的文件时,它似乎工作正常,但实际查看文件属性时,大小总是2147483648字节。
从我的阅读中,我理解这是PHP使用32位整数的限制。
我已经读过设置CFLAGS =“ - D_FILE_OFFSET_BITS = 64”标志并重新编译PHP将允许PHP打开大于2GB的文件。
我的问题是,如果我这样做,这会解决我的问题,还是文件的打开不仅仅是问题,还有文件的追加?
如果这样可以解决我的2GB问题,那么理论上最大文件大小是否仍然存在(更高)?
如果我完全偏离基础并且此标志不能解决我的问题,除了切换到64位服务器之外还有其他任何可能的解决方案吗?
答案 0 :(得分:1)
Linux在32位计算机上遇到2GB文件大小限制(请参阅http://linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit.html)。
您可能需要考虑将整个文件拆分为一些较小的块,或者获得64位计算机。通常,出于性能目的,在许多系统中避免使用大于GB的文件而不是块实现。