PHP ZipArchive类将让我使用open()方法创建一个zip存档:
mixed ZipArchive::open ( string $filename [, int $flags ] )
然后我可以将文件添加到此存档,关闭文件,并按照惯例将其下载到用户的Web浏览器中:
header ('Content-Type: application/zip');
header ('Content-Length: ' . filesize ($filename));
header ('Content-Disposition: attachment; filename="' . $filename . '"');
readfile ($filename);
unlink ($filename);
我的问题:有没有办法避免在服务器硬盘上创建文件,下载然后删除它?即是否可以使用stdout作为传递给open()方法的目标文件名并直接将存档内容写入stdout?有点像:
ZipArchive::open ( STDOUT, ZipArchive::CREATE)
或者我是否仍然需要中间服务器端文件?
答案 0 :(得分:1)
" ZipStream是一个库,用于从PHP动态传输动态zip文件而无需写入磁盘 。服务器#&34; 链接:https://github.com/maennchen/ZipStream-PHP