【问题标题】:Trying to create zip file on the fly but items are not added尝试即时创建 zip 文件,但未添加项目
【发布时间】:2013-03-20 14:19:14
【问题描述】:

我正在尝试压缩一些文件并将其发送给用户下载。 压缩文件按预期发送,但没有任何文本文件添加到存档中。

谁能看到我做错了什么?我试过相对和绝对文件路径。

另外,作为第二个问题:如果此代码正确,我的开发环境是 WAMP 设置,而我的实时环境是 LAMP 设置 - 此代码是否适用于两者?

header('Content-Type: application/zip'); 
header('Content-Disposition: attachment; filename="download1.zip"');
header('Content-Transfer-Encoding: binary');
ob_clean();
flush();
$fp = popen('zip -0 -j -q -r - C:\xampp\htdocs\test\f\1.txt C:\xampp\htdocs\test\f\2.txt', 'r');
while (!feof($fp)) {
echo fread($fp, 8192);
ob_flush();
flush();
}
pclose($fp);

【问题讨论】:

  • 在 linux 上我相信你应该使用 exec 而不是 popen。另外,你不应该写而不读文件吗?

标签: php zip popen


【解决方案1】:

zip 命令中的第一个文件名是要创建的 zip 文件的名称,以下文件是您要添加到实现中的文件。似乎只是在伪造的 zip 文件中捏造就可以了:

$fp = popen('zip -0 -j -q -r - download1.zip test.txt test2.txt', 'r');

【讨论】:

  • 在我的 LAMP 环境中工作的奇怪,也许它与 WAMP 有关。
猜你喜欢
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
相关资源
最近更新 更多