2016-11-22 58 views
0

我使用DropzoneJS在我的項目之一。我正在使用laravel來處理文件上傳的後端。我在表單中使用了一個div,並將dropzone類添加到它。懸浮窗JS只上傳一個文件

<div class="col-md-12 dropzone file_upload"></div> 

它工作正常,但只有一個文件正在上傳。我想讓它同時上傳多個文件。

我已經設置在我的懸浮窗配置10parallelUploads選項和maxFiles選項10也。

,這裏是我的懸浮窗配置代碼:

$("div.file_upload").dropzone({ 
    url: upload, 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    }, 
    autoProcessQueue: true, 
    addRemoveLinks: true, 
    uploadMultiple: true, 
    params: { 
     "model_id": 1, 
     "user_id" : 2 
    }, 
    maxFiles: 10, 
    parallelUploads: 10, 


}); 
下面

是我的後端

代碼Controller.php這樣

public function uploadPhoto(Request $request){ 

    foreach ($request->file('file') as $file) { 

     $filename = uniqid().'.'.$file->getClientOriginalExtension(); 
     $file->move('images/booking', $filename); 

     //save details to db 
     $photo= new InspectionPhotos(); 
     $photo->inspection_id = $request['inspection_id']; 
     $photo->product_id = $request['product_id']; 
     $photo->photo_path = $filename; 
     if($photo->save()){ 
      return response()->json([ 
      'message' => 'OK' 
      ]); 
     } 

    } 

} 
+0

你有多個屬性輸入設置,像這樣? <輸入名稱=「文件」類型=「文件」多個/> – Vivek

+0

@Vivek是的,我設定的多個attribue值設置爲true .. –

+0

如果有uploadMultiple設置爲true的選項,然後懸浮窗將追加[]將名稱。所以你需要在你的js腳本'paramName:「file []」,''中添加這個參數。 –

回答

1

的問題是在return語句Controller.php

的第一個文件保存後,該功能uploadPhoto()返回時,從來沒有得到保存第二個文件。

save()函數包裝在try-catch中,並在catch塊中返回錯誤狀態,並適當地處理前端的錯誤。您可能還希望有$file->move()try-catch,因爲它可能引發錯誤也是如此。

最後,將return語句移出foreach以返回成功狀態。

高興的回答幫你,乾杯!

相關問題