引言:之前在做多文件上传的时候,在网上找了些插件,可以实现一次性上传多个文件,但是放到Struts2里面去的时候就有问题了,所以就干脆使用了Struts2的文件上传了,虽然需要多次选择文件,但好歹也是能一次性上传的。下面来看看我的实现方法,以此抛砖引玉...
先来看看jsp需要的代码:
window.οnlοad=function(){
//文件上传添加按钮
$("#addUpload").click(function(){
var fileDiv = $(".fileDiv").clone();
fileDiv.removeClass(); //去掉class="fileDiv" 如果不这么做,那么会出现多个class="fileDiv" 这样再次clone的时候也就会clone出多个,以等比数列增加
$("#fileTr").append(fileDiv);
fileDiv.show();
})
//删除文件
$(".delUpload").live("click",function(){
$(this).closest("DIV").remove();
})
}
<tr>
<td align="left" width=5%>
导入结果 :
</td>
<td align="left" width=5%>
<span id="addUpload"
style="border: gray 1px solid; padding: 5px 15px; background-color: #BABABA; color: #000fff;">增加</span>
</td>
<td id="fileTr" align="left" width=15% nowrap>
<div class="fileDiv"
style="font-size: 12px; padding: 5px; display: none;">
路径: <input type="file" name="resultFile"
style="background-color: #fff; border: solid 1px #77abc4; color: #000000; width: 270px;" />
<span class="delUpload"
style="border: gray 1px solid; padding: 5px 15px; background-color: #BABABA; color: #000fff;">删除</span>
</div>
</td>
</tr>
效果图如下:
点击删除后:
后台代码:
private List<File> resultFile;//和jsp中 name="resultFile" 这块的name名字对应
private List<String> resultFileFileName;
//对上传的文件list通过循环获取,然后进行自己想要的操作
for (int i = 0; i < resultFile.size(); i++) {
String fileReName = uploadFile(resultFile.get(i),resultFileFileName.get(i));
}
代码比较粗糙,重在意会,各位如果有比较好的推荐还望不吝赐教,感激不尽!!!