[英]php zip archive is created but empty
我尝试创建 pdf 文件的 zip 存档,如下所示:
$path = str_replace('\\', '/',WP_CONTENT_DIR . '/uploads/pdf-files');
$zip = new ZipArchive();
$filename = str_replace('\\', '/', WP_CONTENT_DIR . '/uploads/pdf-files/zip-file.zip');
if($zip->open($filename, ZipArchive::CREATE) !== true) {
die("Error open");
}
if(is_dir($path)) {
if($dh = opendir($path)) {
while(($file = readdir($dh)) !== false) {
$file_parts = pathinfo($file);
if($file_parts['extension'] == 'pdf') {
if($zip->addFile($path . '/' . $file) !== true) {
die("Error addFile");
} else {
echo $file . "\n";
}
}
}
closedir($dh);
}
}
if($zip->close() !== true) {
die("Error close");
}
echo content_url('uploads/pdf-files/zip-file.zip');
wp_die();
所有预期的文件都在 else 中回显。 但是 zip 存档是空的。 为什么?
此代码应返回 zip 存档的 url,以便通过 javascript 下载。
在找到了解决办法。 如果我将第二个参数(文件名)添加到addFile
它会起作用:
$zip->addFile($path . '/' . $file, $file);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.