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

spu*_*uas 53 html javascript html5

可能重复:
使用javascript从多文件上传控件中检索文件名

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

<input type="file" multiple="multiple" />
Run Code Online (Sandbox Code Playgroud)

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

是)我有的:

<input type="file" multiple="multiple" onchange="alert(this.value)"
     onmouseout="alert(this.value) />
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

fox*_*oxy 97

所选文件存储在一个数组中: [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);
}
Run Code Online (Sandbox Code Playgroud)

对于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);
}
Run Code Online (Sandbox Code Playgroud)

  • `files [i]`在IE9中未定义.你能解决一下如何在IE9中完成这项工作吗? (3认同)
  • @ OO7 IE9不支持多输入文件.它只是IE10 +. (3认同)
  • 即文件输入的files属性未定义,但在其他浏览器上工作正常.你知道怎么回事吗? (2认同)

Wla*_*ant 11

使用input.files财产.它是File对象的集合,每个文件都有一个name属性:

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