2017-07-26 83 views
0

我使用dropzone.js允許用戶將多張照片上傳到數據庫。在爲圖片上傳功能設置數據庫之前,我想查看圖片是否可以保存到我想要的文件夾中。但是,在成功上傳3張照片後(由於在圖片上傳後立即顯示刻度標誌,我認爲圖片已成功上傳),其中只有2張出現在文件夾中。Laravel Dropzone.js一些照片無法保存到文件夾中

在我已列出的視圖(包括JavaScript和HTML代碼),路線和控制器文件以下代碼:

CSS - >

{{html::style('https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.1.1/min/dropzone.min.css')}} 

HTML - >

{!! Form::open(array('route' => 'gallery.images.upload', 'class' => 'dropzone', 'enctype' => 'multipart/form-data','files' => true, 'id' => 'addImages', 'method' => "POST")) !!} 

    {{ Form::hidden('gallery_id', $gallery->id) }} 

{!! Form::close() !!} 

Javascript - >

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.1.1/min/dropzone.min.js"></script> 

<script type="text/javascript"> 
    Dropzone.options.addImages = { 
     maxFilesize: 5, 
     acceptedFiles: 'image/jpeg,image/png,image/gif', 
     paramName: "file", 
    } 
</script> 

路線 - >

Route::prefix('gallery')->group(function(){ 
    Route::post('/images/upload', '[email protected]')->name('gallery.images.upload'); 
}); 

控制器 - >

public function uploadGalleryImages(Request $request) 
{ 

    if ($request->hasFile('file')) { 

     // Get the file from the file request 
     $file = $request->file('file'); 

     // set my file name 
     $originalName = $file->getClientOriginalName(); 

     $filename = uniqid() . $originalName; 

     $file->move('galleries/images/', $filename); 

    } 
    else{ 
     return redirect()->route('gallery.view'); 
    } 
} 

我一直在到處打聽了好幾個星期,但不能得到任何答案。我真的需要你的幫助!

Screenshot of images being successfully uploaded

Screenshot of images present in the folder

+0

控制檯中的任何東西? –

+0

@AndyHolmes在控制檯顯示給我: '[違例]'加載'處理程序花了151ms dropzone.min.js:1' – Doufu

+0

@AndyHomes有時它會顯示:'[Violation]執行JavaScript時強制迴流需要34ms ' – Doufu

回答

0

這件事給了我一次,因爲服務器通過影像去時,它會覆蓋一些圖片,因爲他們得到了相同的文件名,以避免這種使用這樣的事情,以確保您有獨特的文件名:

$random = mt_rand(1,1000); 
$filename = time().''.$random. '.' . $file->getClientOriginalExtension(); 
+0

您是否看到'$ filename = uniqid()。 $ ORIGINALNAME;'? –

+0

是的,它可能是uniqueid()函數的一些東西,嘗試用一個隨機值添加時間,以確保它的唯一性。 – Sletheren

+0

@Sletheren謝謝你的回覆。當我將uniqid()函數更改爲註釋中給出的行時,問題保持不變。 – Doufu