1 つのスクリプトで、次のことを行う必要があります。
- ディレクトリ内のファイルから zip を作成する
- 新しく作成された zip のダウンロードを強制する
私の問題は、単一のスクリプトでこれを実行しようとすると、ダウンロードした zip が破損することです (ただし、ファイルサイズは問題ありません)。2 つの別々のスクリプト呼び出しでプロセスをトリガーすると、ダウンロードされた zip は問題ありません。
問題は、ダウンロードが開始される前に、ファイルへの zip 保存プロセスが完全に終了していないことだと思います。奇妙なことに、プロセス間に sleep(3) を挿入しても問題は解決しません... 以下のコードの概要。
強制ダウンロードが開始される前に、zip ファイルが完全に終了していることを確認するにはどうすればよいですか?
よろしく / ジョナス
// 1. create a zip
$createZipFile = new CreateZipFile('temp.zip');
$createZipFile->zipDirectory('temp/', '.');
$createZipFile->saveZipFile();
sleep(3); // <-- Doesn't matter!
// 2. force zip download
$fileServer = new FileServer();
// Line below gives a corrupted zip when run in same script as 1.
$fileServer->forzeDownload('temp.zip');