选择多个文件时,获取input type =“file”值

时间:2011-08-11 09:14:06

标签: javascript html html5

  

可能重复:
  Retrieving file names out of a multi-file upload control with javascript

从HTML5输入type =“file”允许用户通过添加multiple =“multiple”来选择多个文件:

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

我的问题是:如何获得该输入的值?使用.value时,它只返回所选第一个文件的文件名,但是当选择多个文件时,我无法查看其他文件。

我有什么:

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

正如我告诉你的那样,只显示其中一个选定文件的名称。

注意:我不想编辑值(我知道这是不可能的)只有文件的名称

谢谢!

2 个答案:

答案 0 :(得分:88)

所选文件存储在一个数组中:[input].files

例如,您可以访问项目

// 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);
}

对于jQuery舒适的人来说,同样容易

// 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);
}

答案 1 :(得分:11)

use input.files property。它是File objects的集合,每个文件都有name属性:

onmouseout="for (var i = 0; i < this.files.length; i++) alert(this.files[i].name);"