最近项目用到Struts 1.3,要做一个多文件上传,一次上传多张图片,参考了网上的代码,老是不行,最后终于弄出来了,估计是由于网上的都是基于Struts2的上传,废话不多说,具体步骤为:
1、前台页面
前台页面中,form表单enctype属性设为 "multipart/form-data" ,表单部分内容如下
<input type="file" value="上传图片" name="bugPictures"></input>
<input type="button" value="添加更多" οnclick="addImage(this);"/>
js如下(用了jQuery,主要是看它的选择器很强大):
<script type="text/javascript"> var i=1; function addImage(obj){ if(i>4){ alert("每次上传图片不允许超过5张"); return; } $(obj).parents("tr:first").after("<tr><td></td><td colspan='2'> <input type='file' value='上传图片' class='bugPictures' name='bugPictures'/></td></tr>"); i++; } </script>
项目中上传的是图片,顺便把图片类型验证的js贴出来
$('.bugPictures').each(function(){ var reg=/.*([.]jpg|[.]bmp|[.]png|[.]jpeg|[.]gif)$/; if(reg.test($(this).val())==false){ $(this).parent().parent().remove(); } });
2、ActionForm
private List bugPictures;
添加相应的get、set方法
3、Action处理代码
for (Object obj : bugForm.getBugPictures()) {
FormFile formfile = (FormFile) obj;
byte[] data = formfile.getFileData();
//添加你的处理代码
}
其实struts 1.x 的文件上传还是很简单的,OK!