2016-10-04 89 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); 
    } 
}