Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get input type="file" value when it has multiple files selected [duplicate]

Possible Duplicate:
Retrieving file names out of a multi-file upload control with javascript

From HTML5 input type="file" allows users to choose multiple files by adding the multiple="multiple" :

<input type="file" multiple="multiple" /> 

My question is: how can I get the value of that input? When using the .value it only returns the filename of the first file selected, but when choosing more than one I am not able to view the other ones.

What I have:

<input type="file" multiple="multiple" onchange="alert(this.value)"      onmouseout="alert(this.value) /> 

which as I told you, is only showing the name of one of the selected files.

NOTE: I don't want to edit the value (I know that is not possible) only the name of the files

Thanks!

like image 815
spuas Avatar asked Aug 11 '11 09:08

spuas


2 Answers

The files selected are stored in an array: [input].files

For example, you can access the items

// assuming there is a file input with the ID `my-input`... var files = document.getElementById("my-input").files;  for (var i = 0; i < files.length; i++) {  alert(files[i].name); } 

For jQuery-comfortable people, it's similarly easy

// assuming there is a file input with the ID `my-input`... var files = $("#my-input")[0].files;  for (var i = 0; i < files.length; i++) {  alert(files[i].name); } 
like image 130
foxy Avatar answered Sep 21 '22 14:09

foxy


You use input.files property. It's a collection of File objects and each file has a name property:

onmouseout="for (var i = 0; i < this.files.length; i++) alert(this.files[i].name);" 
like image 45
Wladimir Palant Avatar answered Sep 23 '22 14:09

Wladimir Palant