如何在上传多个文件之前在Struts2中显示所选择的文件名?

24

我正在使用Struts2上传多个文件:

<s:file name="files" multiple="multiple" />

当我选择多个文件时,它会显示文件数量,例如:3个文件。

项目要求用户在上传之前应该能够看到他选择的文件

是否可以在列表中或者控件本身中显示所选文件的名称?

1个回答

62

您可以按照以下方式使用元素的HTML5 files属性:

updateList = function() {
    var input = document.getElementById('file');
    var output = document.getElementById('fileList');
    var children = "";
    for (var i = 0; i < input.files.length; ++i) {
        children += '<li>' + input.files.item(i).name + '</li>';
    }
    output.innerHTML = '<ul>'+children+'</ul>';
}
<input type="file" multiple
       name="file" 
         id="file" 
   onchange="javascript:updateList()" />

<p>Selected files:</p>

<div id="fileList"></div>


2
非常感谢,它完美地运行了 :)。是的,它也可以与<s:file>一起使用。 - Pradnya
如果您使用asp.net的FileUpload,则输入应为: var input = document.getElementById('<%= fileupload.ClientID%>'); - Sam
如何获取所选文件的完整路径? - Inderjeet
那么如何在那里添加一个“删除”按钮,以删除所选文件呢? - EMPaguia
问题不够清晰,最好您将其作为一个全新的问题提出。 - Andrea Ligios
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接