私はphpZipArchiveを使用して、オンザフライでzipファイルを作成し、それをユーザーに送り返しています。zipファイルをドキュメントルートの上のフォルダーに一時的に保存してから、コードとともに送り返します
header('Content-type:application/zip');
header('Content-Disposition: inline; filename="'.("file.zip").'"');
header("Content-Transfer-Encoding: binary");
header("Content-Length:".filesize($file));
$fh = fopen($file,'rb');
fpassthru($fh);
最初に発行した後
$zip->close()
ファイルが開いていないことを確認します。私が遭遇した問題はこれです-保存されたzipファイルはWindows7、7Zip、WinZIPなどで開くことができる有効なアーカイブです。しかし、上記のコードでファイルを送信すると、0xD0xAペアになりますファイルの先頭で、ファイルを破損させるのに十分です。それらのキャラクターがどこから来ているのかわかりません。これはfopen/fpassthruの既知のバグですか?どんな助けでも大歓迎です。