2016-10-25 2 views
0

Я использую рюкзак и им пытаюсь загрузить zip, у которого есть Json некоторых запросов и изображений внутри. то, что мне нужно, точно так же, как резервное копирование рюкзака. загрузка после резервного копирования будет выполнена. в моем случае, мне нужно скачать, когда zipping завершен.Laravel-backpack download после некоторой работы заканчивается

проносясь в прозы функции загрузки в контроллер, который вызывается при пользователь нажмет "загрузить"

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; 
} 

это возвращает EROR

FileNotFoundException в file.php строке 37: 2016-10 -25.zip "не существует

, но когда я вернусь и попробую загрузить его снова, я могу скачать его, а после этого Файл ror не появляется снова

его вид, ответ загрузки запущен до того, как делается zip. во второй попытке, ответ загружает zip, который уже сделан с первой попытки.

если кто-то знает какой-то правильный путь, я понимаю, что Trully Пожалуйста, помогите, я действительно застрял здесь

ответ

1

Вы должны закрыть молнию перед загрузкой.

... 
$zipper->close(); 
$pathDownload =Response::download(public_path('export/'.$fileName.'.zip'))->deleteFileAfterSend(true); 
... 
Смежные вопросы