我使用背包,我试图下载里面有 Json 的一些查询和图像的 zip。我需要的就像背包备份一样。备份完成后下载。就我而言,压缩完成后我需要下载。
压缩散文在控制器中的下载功能中,当用户单击“下载”时调用
public function download($packId)
{
$content = DB::table('questions')
->join('package_has_questions', 'questions.id', '=', 'package_has_questions.question_id')
->where('package_has_questions.package_id','=',$packId)
->select('questions.*')
->get();
$fileName = carbon::now()
$data = json_encode($content);
$files = glob(public_path('export/'.$fileName.'.json'));
$zipper = new \Chumper\Zipper\Zipper;
$zipper->make('export/'.$fileName.'.zip')->add($files);
foreach($content as $eachContent){
$imgPathA=glob(public_path('img/game/'.$eachContent->img_a_file));
$imgPathB=glob(public_path('img/game/'.$eachContent->img_b_file));
// dd($imgPath);
$zipper->folder('img')->add($imgPathA);
$zipper->folder('img')->add($imgPathB);
}
$pathDownload =Response::download(public_path('export/'.$fileName.'.zip'))->deleteFileAfterSend(true);
return $pathDownload;
}
这返回一个错误
File.php 第 37 行中的 FileNotFoundException:2016-10-25.zip" 不存在
但是当我返回并尝试再次下载时,我可以下载它。并且在该错误文件不存在之后再次出现
看起来,下载响应在压缩完成之前正在运行。在第二次尝试中,响应是下载第一次尝试已经完成的 zip。
如果有人知道正确的方法,我真的很感激请帮助,我真的卡在这里