如何在一个请求中创建,下载和删除文件

时间:2016-05-20 07:50:31

标签: php file laravel-5

我需要在Laravel的一个请求中创建,压缩,下载和删除文件。我在我的控制器中使用以下代码:

$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文件。因此我得到一个错误,该文件不存在。但是在错误响应之后,文件被创建并且可用。因此,如果我再次运行相同的控制器方法,则会下载该文件。

请你帮我解决这个问题。我希望能够创建该文件,下载并删除它。

1 个答案:

答案 0 :(得分:0)

我终于自己解决了这个问题。 需要调用Zipper的close方法,以便创建文件:

$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);