HTML:选择多个文件但没有显示文件名?

use*_*574 5 html javascript file-upload

我使用"multiple"标签让用户选择多个文件进行上传.

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

但它只显示例如"3个文件被选中".最好还显示文件名.

它可行吗?谢谢.

BTW,在这种情况下如何取消选择文件(例如,清除列表)?

Joe*_*e50 6

您可以使用.filesinput元素上的属性执行此操作:

document.getElementById('files').addEventListener('change', function(e) {
  var list = document.getElementById('filelist');
  list.innerHTML = '';
  for (var i = 0; i < this.files.length; i++) {
    list.innerHTML += (i + 1) + '. ' + this.files[i].name + '\n';
  }
  if (list.innerHTML == '') list.style.display = 'none';
  else list.style.display = 'block';
});
Run Code Online (Sandbox Code Playgroud)
<input type="file" id="files" multiple />
<pre id="filelist" style="display:none;"></pre>
Run Code Online (Sandbox Code Playgroud)

如果仍然存在来自先前选择的内容,则首先清空列表,然后它遍历文件列表中的每个项目,然后将其添加到<pre>输入下面的元素.在<pre>如果在列表中没有选择的项目将被隐藏.

PS:只需单击输入即可清除列表,然后按esc或单击文件选择窗口中的"取消".

  • 谢谢!我喜欢这种方法,但我将其更改为仅在选择多个文件时添加文件名,因为当您只选择1个文件时,默认情况下显示1个文件名.`if(this.files.length> 1){for loop ...}` (2认同)