2011-11-24 214 views
0

我想实现像GMail的“将所有附件作为压缩文件”的功能。如何将文件压缩并传递到浏览器?

有没有办法在服务器上选择多个文件,将它们压缩并实时传递给浏览器? (类似于PHP函数readfile东西用于附件流)

[编辑]

看来你误解了我的意图,所有给出的例子需要创建和关闭存档前的发送,我想在创建存档时进行流式处理。

喜欢的东西unix命令(从拉链手册): zip -r - . | dd of=/dev/nrst0 obs=16k

[EDIT2]

我有吨〜2MB文件(> 100)来服务,等待创建TMP zip文件的强制实施排队机制并占用存储空间...如果可以通过流/管直接向浏览器完成,为什么我应该在filesyetm中编写tmp zip?

+1

http://www.php.net/manual/en/zip.examples.php – Piskvor

+0

我读过这个例子......并且没有解决方案。 – canni

+0

噢,你的意思是一个完整的,编码的解决方案,直到最后一个字符,就像“给我编码”一样? – Piskvor

回答

1

您的PHP主机可能碰巧安装了zip extension。 如果是这样,你应该使用它。 (性能原因)

否则,对于zip归档,没有依赖关系的好库是PclZip

显然有一个PEAR library它,但现在已被弃用,焦点已转移到我已经提到的PECL(二进制)扩展。 (无论如何,整个PEAR生态系统正在逐渐腐烂)

相关问题