0
イメージをzipファイルに追加しようとしていて、それをダウンロードするためにヘッダーが必要です。以下は、私が今使っているコードスニペットです。php zipのダウンロードコードに問題がある
$zip = new ZipArchive();
$zip_name = 'design_images_'.time() .".zip";
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
$error .= "* Sorry ZIP creation failed at this time";
}
$i = 0;
foreach($valid_files as $file){
$image_name = 'design_image_' . $i;
$zip->addFile($file, $image_name);
$i++;
}
$zip->close();
if(file_exists($zip_name)){
// force to download the zip
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$zip_name.'"');
readfile($zip_name);
}
私がzipファイルを開こうとすると、エラーが発生します。アーカイブが壊れています。
は 'zip-> open'でエラーがありませんあなたは確かにいますか? 'readfile'の後に出力がありますか? –
はい、ジップは正確なサイズで正常にダウンロードされますが、抽出することはできません。 zipファイルをダブルクリックすると、適切なサイズの画像がすべて表示されます。しかし、同じものを開くか抽出することはできません。 –