2016-05-20 20 views
0

Laravelの1回のリクエストでファイルを作成、解凍、ダウンロード、削除する必要があります。私はコントローラで次のコードを使用します:1回のリクエストでファイルを作成、ダウンロード、削除する方法

$pathToFile = "myFile.txt"; 
$content = "content"; 

Storage::put($pathToFile,$content);  
$file = storage_path().'/app/'.$pathToFile; 
$zipFile = storage_path().'/app/'.$this->name.'.zip'; 
Zipper::make($zipFile)->add($file); 

return response()->download($zipFile); 

残念ながら、zipファイルはダウンロードしようとしたときに作成されません。したがって、ファイルが存在しないというエラーが表示されます。ただし、エラー応答後にファイルが作成され、使用可能になります。したがって、同じコントローラメソッドを再度実行すると、ファイルがダウンロードされます。

この問題で私を助けてください。私は、ファイルを作成し、ダウンロードして削除することができるようにしたいと思います。

+0

あなたは 'myFile.txt'またはzipファイルをダウンロードしますか: ファイルを作成するために、ジッパーのcloseメソッドを呼び出すために必要とされていますか? –

+0

zipファイル... –

+0

なぜ、あなたは 'response() - > download($ pathToFile);の応答にtxtファイルへのパスを渡しますか? –

答えて

0

私は最終的に問題を自分で解決しました。

$pathToFile = "myFile.txt"; 
$content = "content"; 

Storage::put($pathToFile,$content);  
$file = storage_path().'/app/'.$pathToFile; 
$zipFile = storage_path().'/app/'.$this->name.'.zip'; 
Zipper::make($zipFile)->add($file); 
Zipper::close(); 

return response()->download($zipFile); 
関連する問題