2016-10-25 11 views
0

私はバックパックを使用していて、Jsonにはいくつかのクエリと画像が入っているzipをダウンロードしようとしています。私が必要とするのはバックパックのバックアップのようなものです。バックアップ後にダウンロードが行われます。私の場合は、ジップが完了したらダウンロードが必要です。 2016から10:prosesをビュンいくつかの仕事が終了したらLaravel-backpackをダウンロードします

が、これはFile.php線37でEROR

にFileNotFoundExceptionを返すユーザーのクリックが

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

を "ダウンロード" したときに呼び出さコントローラでのダウンロード機能であります-25.zip "が存在しません

しかし、私が戻ってもう一度ダウンロードしようとすると、ダウンロードできますファイルが存在しません

のように、ジップが行われる前にダウンロードの応答が実行されています。 2回目の試行では、最初の試行からすでに完了しているジップがダウンロードされます。

誰かが何らかの正しい方法を知っていれば、私はtrully私は本当にここ

答えて

1

あなたはそれをダウンロードする前に、ジッパーを閉じる必要がで立ち往生し、助けてください ことを感謝しています。

... 
$zipper->close(); 
$pathDownload =Response::download(public_path('export/'.$fileName.'.zip'))->deleteFileAfterSend(true); 
... 
関連する問題