Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Tachi's avatar
Level 1

How to get all files from input type='file' multiple?

I have input in my form:

 <input type="file" name="images" accept="image/*" multiple>

And here is how my controller looks like:

public function save(Request $request)
{
    dd($request->allFiles());
}
        

But I get only one file, doesn't matter how many files I select.

Here is the output:

array:1 [▼
  "images" => UploadedFile {#205 ▼
    -test: false
    -originalName: "IMG_16122016_170148.png"
    -mimeType: "image/png"
    -size: 6625
    -error: 0
    path: "C:\OpenServer\userdata\temp"
    filename: "phpAB07.tmp"
    basename: "phpAB07.tmp"
    pathname: "C:\OpenServer\userdata\temp\phpAB07.tmp"
    extension: "tmp"
    realPath: "C:\OpenServer\userdata\temp\phpAB07.tmp"
    aTime: 2017-02-01 14:47:53
    mTime: 2017-02-01 14:47:53
    cTime: 2017-02-01 14:47:53
    inode: 0
    size: 6625
    perms: 0100666
    owner: 0
    group: 0
    type: "file"
    writable: true
    readable: true
    executable: false
    file: true
    dir: false
    link: false
    linkTarget: "C:\OpenServer\userdata\temp\phpAB07.tmp"
  }
]
0 likes
4 replies
RonB1985's avatar

Try it like this:

<input type="file" name="images[]" accept="image/*" multiple>
public function save(Request $request)
{
    dd($request->images);
}

Edit:

You can use something like dropzone perhaps, I use it and I love it:

http://www.dropzonejs.com/

And it will do a POST request for each file you upload, so no need for the files[] then, instead you can treat each request as a new one. Just a quick fyi.

tomopongrac's avatar
Level 51

try add [] to name attribute

 <input type="file" name="images[]" accept="image/*" multiple>
2 likes
RonB1985's avatar

Whops, I messed it up :) Fixed it now but Tomi already beat me to it :)

Please or to participate in this conversation.