ユーザーがダウンロードできるように、PHPでzipファイルを作成しています。PHP から、または zipArchive クラスの GetStatusString 関数をチェックしても、エラーは発生しません。しかし、いくつかのファイルをアーカイブに入れた場合、それを開こうとすると、「圧縮 (zip 形式) フォルダーが無効であるか破損しています」というエラーが表示されます。追加するすべてのファイルを確認しましたが、すべて問題ありません。私が考えることができる唯一のことは、より大きなファイルが問題を引き起こしているということです. しかし、「大きな」ファイルは約 0.5 メガバイトしかなく、zipArchive のファイル サイズ制限に関するドキュメントは見つかりません。この問題を追跡できるように、他に試してみるべきことについて何か考えはありますか? ありがとう。
編集: 問題を引き起こしている特定の 1 つのファイルに絞り込みました。同じかそれ以上で機能するものは他にもあるので、その考えは捨ててしまうと思います。正常に機能しているファイル名の例を次に示します。
627 Jane.CCD.pdf
712 Example_DrNotes.pdf
625 Jane.Labs2.pdf
はい、ファイル名にスペースがあります...継承されたコードの問題です。動作しないファイル名は次のとおりです。
623 ジェーン.Labs.pdf
ファイル名の問題ではないようです。これは最終的には Web 経由になりますが、サーバー上で作成される実際の zip ファイルをチェックしていて、そこにエラーが発生しています。
コードは次のとおりです。
$zip = new ZipArchive();
$zfileName = $GLOBALS["localUploadRoot"] . $zfile;
$requests = $this->getRequests(true);
foreach ($requests AS $r) {
if (file_exists($GLOBALS["localInboundRequests"] . $r["file"])) {
$zip->addFile($GLOBALS["localInboundRequests"] . $r["file"], $r["file"]);
}
}
$zip->close();
編集 2: 申し訳ありませんが、ファイルを投稿できません。その中には個人情報が含まれています。