当.zip为> = 4GB时,PHP的原生ZipArchive类失败。怎么修?

时间:2012-07-12 09:14:20

标签: php ubuntu zip limit ziparchive

PHP 5.3 +的本机ZipArchive类(http://php.net/ziparchive)会创建损坏的结果文件(.zip),但仅当结果.zip大于~4GB时(我认为是3,6 GB。服务器是Ubuntu) 10.10 64位,4GB RAM,最新PHP 5.3)。错误(使用您使用的任何软件解压缩.zip时):

file #1:  bad zipfile offset (lseek): 

根据网上的几个帖子,这只是这个类/ zip函数的(未记录的)最大限制。我的问题是:如何解决这个问题,快速而肮脏?是否有一些可能的php.ini或服务器设置?或者在本机ubuntu系统上创建4GB + .zip文件的其他一些方法?我没有root访问权限,无法安装新软件包。

在Java上有一些类似的Q& As: Zip files with Java: Is there a limit?

2 个答案:

答案 0 :(得分:2)

Wikipedia's quote

  

原始zip格式对各种内容(文件的未压缩大小,文件的压缩大小和存档的总大小)有4 GiB限制,以及zip存档中限制为65535个条目。

这不是课程的限制,而是拉链本身。例如,您可以切换到tar.gz。

答案 1 :(得分:0)

我认为这是操作系统使用的文件系统的问题。我会考虑将数据存储在多个存档文件中。