我有一个
PHP网站有很多媒体文件,用户需要能够一次下载多个文件作为.zip.我试图使用
ZipStream在“存储”压缩的情况下随时为拉链提供服务,因此我实际上不必在服务器上创建一个zip,因为一些文件是巨大的,压缩它们的速度太慢了.
这是非常好的结果文件可以打开每个zip程序,我尝试没有错误,除了OS X的默认解压缩程序,存档实用程序.您双击.zip文件,并且Archive Utility决定它不是真正的zip,而是压缩到.cpgz文件中.
在OS X终端或StuffIt Expander中使用unzip或ditto解压缩文件,但无需任何问题,但我需要默认程序(Archive Utility)才能为我们的用户服务.
否则可接受的zip文件中的什么样的东西(标志等)可以将Archive Utility设为考虑文件不是有效的zip?
我已经阅读了this question,这似乎描述了一个类似的问题,但我没有任何一个通用的bitfield位设置,所以这不是第三个问题,我很确定我有有效的crc-32的,因为当我不,WinRAR扔了一个合适.
我很高兴发布一些代码或链接到一个“坏”的zip文件,如果它有帮助,但我几乎只是使用ZipStream,强制它进入“大文件模式”,并使用“存储”作为压缩方法.
编辑 – 我也尝试过“压缩”压缩算法,并获得相同的结果,所以我不认为这是“商店”.还有一点值得指出的是,我从存储服务器一次将文件从存储服务器中拉出,并在发送出去时将它们发送出去,以便在发送任何内容之前需要下载所有文件的解决方案不会变得可行(极端例如是5GB的20MB文件,用户不能等待所有的5GB在下载开始之前转移到压缩服务器,否则他们会认为它是坏的)