WordPress不能使用ZipArchive

时间:2021-11-23 作者:fredriktv

我目前正在开发一个网站,客户可以在其中下载packshots等品牌图片。我制作了一个定制购物车,客户应该能够下载使用ZipArchive添加到购物车中的所有图像。但如果不是WordPress(通常是这样),它似乎很容易工作。

我的代码:

$files = array(\'test.jpg\', \'test2.jpg\');
$zipname = \'images.zip\';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

header(\'Content-Type: application/zip\');
header(\'Content-disposition: attachment; filename=\'.$zipname);
header(\'Content-Length: \' . filesize($zipname));
readfile($zipname);
起初,我出现了错误:警告:无法修改标题信息-标题已由发送(输出开始于,但我通过init操作解决了此问题。

第二个问题是没有下载zip。

我的问题是,这里是否有人在WP中使用过ZipArchive,能够显示一些示例代码。或者有任何有用的提示。

谢谢

1 个回复
SO网友:Ravi

我使用以下代码在WordPress的根文件夹中成功创建了zip文件:

$files = array(__DIR__.\'/test.jpg\', __DIR__.\'/screenshot.png\');
$zipname = \'images.zip\';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE) or die(\' cant open \');
foreach ($files as $file) {
 if( $zip->addFile($file)){
    echo "<br>$file Added To Zip Sucessfully";
 }else {
    echo "<br>Can not add $file file";
 }

}
$zip->close();


if(file_exists($zipname)){
    echo "<a href=\'$zipname\' download> Download $zipname</a> ";
}else{
    echo "$zipname not Exists!";
}
我使用__DIR__ 并通过打印消息来测试每个步骤。如果未自动下载,则可以提供下载链接。我希望这有帮助。