我需要在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文件。因此我得到一个错误,该文件不存在。但是在错误响应之后,文件被创建并且可用。因此,如果我再次运行相同的控制器方法,则会下载该文件。
请你帮我解决这个问题。我希望能够创建该文件,下载并删除它。
答案 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);