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

私が持っていた

この

は私のコードです012を付け加えるそう name属性の値の後:

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

そして、あなたのコントローラーで:

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

あなたの質問に私が言いたいのは、Form :: file( 'attachment []'、['multiple' => 'multiple'])です。 – channasmcs

+0

しかし、これは私のために働いていません。最後のファイルのみがアップロードされています –

+0

@Jamie 'attachment []'はコードに表示されていませんか?あなたはそれがすべきであることを意味しますか? –

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

あなたはまだあなたがこれを使用することができ、ブレードで作業したい場合は

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

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