引言:之前在做多文件上传的时候,在网上找了些插件,可以实现一次性上传多个文件,但是放到Struts2里面去的时候就有问题了,所以就干脆使用了Struts2的文件上传了,虽然需要多次选择文件,但好歹也是能一次性上传的。下面来看看我的实现方法,以此抛砖引玉...
先来看看jsp需要的代码:
window.onload=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)); }
代码比较粗糙,重在意会,各位如果有比较好的推荐还望不吝赐教,感激不尽!!!
原文:http://blog.csdn.net/javaweiming/article/details/24352415