[英]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.