我想使用 7-Zip 压缩目录,然后将其下载到网络浏览器。
但是,不是压缩到文件,而是让 PHP 将该文件的内容提供给浏览器......我理想情况下希望让 7-Zip在创建存档时将新存档的内容写入标准输出。 .. 同时让 PHP 刷新其缓冲区并将数据发送到浏览器。
你看,我正在创建的档案非常大。从用户的角度来看,使用普通方法,当他们单击“下载”时,首先会创建存档并保存到一个文件中(这可能需要大约 10 分钟),然后才可以下载 PHP 厌倦的文件. 我想要做的是将归档和输出步骤合并到一个进程中。
有人对此有任何意见吗?
这是 SourceForge 上的其他人正在尝试做同样的事情......
http://sourceforge.net/projects/p7zip/forums/forum/383043/topic/3828566
=======
谢谢大家的帮助。我将关闭这个线程,因为我最近发现 StackOverflow 上已经存在关于这个主题的精彩讨论。看:
LAMP:如何即时为用户创建大文件的 .Zip,而不会出现磁盘/CPU 抖动
=======
这是我采用的最终解决方案,它对我来说非常有用。请注意,我使用的是“InfoZip”程序,您几乎可以在任何平台上找到它。
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename="file.zip"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
passthru("zip -8 -q -r - ./some_directory | cat");