Web サイトに WordPress を使用しており、Web サイトからローカル ドライブに zip ファイルをダウンロードするためのメニュー項目を含めたいと考えています。次の関数を使用してみました。
function download_binary_file($file) {
if (file_exists($file)) {
$base_name = basename($file);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$base_name.'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
}
しかし、この関数を実行すると、ファイルを保存するためのダイアログが表示される代わりに、zip ファイルの内容がブラウザーに表示されます。何か案は?