0

我正在编辑一个古老的脚本,它压缩了几个图像并将它们动态地呈现给用户。

我已经重写了几乎所有的代码,但是我找不到输出 zipfile 内容的方法。将其写入服务器是非常不可取的。

我使用以下命令创建文件:

$z = new ZipArchive();

我可以添加内容:

$z->addFromString("filename",$string);

我想动态呈现它:

header("Content-Type: application/zip;");
header("Content-Disposition: attachment; filename=file.zip;");

// I need a function to read the contents of the zipfile here. Something like:
echo $z->filecontent();

我找不到为此使用什么功能。

4

2 回答 2

0

如果您阅读文档,请查看close()方法以实际将文件物理保存到文件系统。然后您可以在保存的文件上使用readfile()

于 2013-02-18T22:09:17.537 回答
0

您将打开文件,最有可能使用临时名称创建它。像这样的东西:

$name = tempnam('/tmp','zip');
$z->open($name, ZIPARCHIVE::CREATE)

添加完所有文件后,您将关闭它。

$z->close();

现在,当您准备好发送数据时,您可以这样做:

readfile($name);

完成后,您要使用以下命令清理临时文件:

unlink($name);
于 2013-02-18T22:09:50.150 回答