【发布时间】:2016-11-27 23:48:47
【问题描述】:
我有以下用于多文件输入的代码
<form action="" enctype = "multipart/form-data" method="post" name="login">
<input type = "file" name = "photo[]" id = "files" multiple onchange = "handleFileSelect(this.files)"/><br/>
<div id="selectedFiles"></div>
<input type="submit" value="Sign In">
</form>
javascript等效函数是。
selDiv = document.querySelector("#selectedFiles");
function handleFileSelect(e) {
if(!this.files) return;
selDiv.innerHTML = "";
var files = e;
for(var i=0; i<files.length; i++) {
var f = files[i];
selDiv.innerHTML += f.name + "<br/>";
}
}
我得到的是上传第二个文件。 FileList 被覆盖,而不是有 2 个文件,FileList 中存在第二个文件。这里 FileList 是由 this.files 传递的。
同样,在传递给服务器时,只有第二个图像被传递。我已经通过谷歌搜索但找不到答案。如果有人可以提供帮助,我将不胜感激。
【问题讨论】:
-
其实就是这样。当使用属性为
multiple的 HTML 文件元素时,用户必须使用 shift 或 control click 一次选择他们想要上传的所有文件。如果您选择一个,然后关闭对话框,然后返回并选择另一个,它将替换之前选择的文件。 -
啊谢谢你的信息。但是有没有办法让用户多次上传文件。
标签: javascript html forms input filelist