2016-10-04 66 views
5

如何上傳Laravel 5.3中的多個文件。如果我用1張圖片試用它,但是多張圖片沒有上傳。Laravel 5.3多個文件上傳

這是我的代碼:

if($request->hasFile('attachment')) 
{ 
    foreach ($request->allFiles('attachments') as $file) { 
     $file->store('users/' . $user->id . '/messages'); 
    } 
} 
+1

做你添加Form :: file('myfile []',['multiple'=>'multiple']); – channasmcs

+0

我正在測試郵遞員。所以是的,我已經做到了。 – Jamie

+0

@Jamie你現在如何將路徑保存到DB? – lewis4u

回答

9

它現在是這樣的:

$files = $request->file('attachment'); 

if($request->hasFile('attachment')) 
{ 
    foreach ($files as $file) { 
     $file->store('users/' . $this->user->id . '/messages'); 
    } 
} 

我不得不追加[]name屬性的值之後,所以:

<input type="file" name="attachment[]" multiple> 
+2

我提到你的問題Form :: file('attachment []',['multiple'=>'multiple']); – channasmcs

+0

但這不適合我。只有最後一個文件正在上傳 –

+0

@Jamie'附件[]'沒有顯示在你的代碼中?你的意思是它應該是? –

1

嘗試一些像這樣的事情:

public function multiple_upload() { 
    // getting all of the post data 
    $files = Input::file('images'); 

    // Making counting of uploaded images 
    $file_count = count($files); 

    // start count how many uploaded 
    $uploadcount = 0; 

    foreach($files as $file) { 
     $rules = array('file' => 'required'); 

     //'required|mimes:png,gif,jpeg,txt,pdf,doc' 

     $validator = Validator::make(array('file'=> $file), $rules); 

     if($validator->passes()){ 
      $destinationPath = 'uploads'; 
      $filename = $file->getClientOriginalName(); 
      $upload_success = $file->move($destinationPath, $filename); 
      $uploadcount ++; 
     } 
    } 
} 

Upload multiple files in laravel - Documentation

+0

謝謝,但這不是關於Laravel 5.3的新功能嗎? – Jamie

+0

https://laravel.com/docs/5.3/filesystem#file-uploads – Jamie

0

如果你想仍與刀片工作,你可以使用這個:

{{ Form::open(array('url' => 'upload', 'files'=>true)); }} 
{{ Form::file('gallery[]', array('multiple'=>true,'accept'=>'image/*')); }} 
{{ Form::submit(); }} 
{{ Form::close(); }} 

而在你的控制器:

files = $request->file('gallery'); 

if($request->hasFile('gallery')) 
{ 
    foreach ($files as $file) { 
     // $file->store('users/' . $this->user->id . '/messages'); 
     //dump($file); 
    } 
}