struts2上传文件及多文件上传
1. struts2中的文件上传
第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar , commons-io-1.3.2.jar。
第二步:把form表单的enctype属性设置为"multipart/form-data",如
<form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post"> 文件:<input type="file" name="image"> <input type="submit" value="上传"/> </form> //${pageContext.request.contextPath}:获取服务器根路径
public class HelloWorldAction {private File image; //与jsp表单中的名称对应private String imageFileName; //FileName为固定格式private String imageContentType ;//ContentType为固定格式public String getImageContentType() {return imageContentType;}public void setImageContentType(String imageContentType) {this.imageContentType = imageContentType;}public String getImageFileName() {return imageFileName;}public void setImageFileName(String imageFileName) {this.imageFileName = imageFileName;}public File getImage() {return image;}public void setImage(File image) {this.image = image;}public String execute() throws Exception{System.out.println("imageFileName = "+imageFileName);System.out.println("imageContentType = "+imageContentType); //获取服务器的根路径realpathString realpath = ServletActionContext.getServletContext().getRealPath("/images");System.out.println(realpath);if(image!=null){File savefile = new File(new File(realpath), imageFileName);if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();FileUtils.copyFile(image, savefile);ActionContext.getContext().put("message", "上传成功");}else{ActionContext.getContext().put("message", "上传失败");}return "success";}}
<form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post"> 文件1:<input type="file" name="image"><br/> 文件2:<input type="file" name="image"><br/> 文件3:<input type="file" name="image"><br/> <input type="submit" value="上传"/> </form>2. action中用数组接收
public class HelloWorldAction {private File[] image;private String[] imageFileName;private String[] imageContentType ;//省略了set和get方法public String execute() throws Exception{String realpath = ServletActionContext.getServletContext().getRealPath("/images");System.out.println(realpath);if(image!=null){File savedir = new File(realpath);if(!savedir.exists()) { savedir.mkdirs(); }System.out.println("image.length = "+image.length);for(int i = 0 ; i<image.length ; i++){System.out.println("imageContentType["+i+"] = "+imageContentType[i]);File savefile = new File(savedir, imageFileName[i]);FileUtils.copyFile(image[i], savefile);}ActionContext.getContext().put("message", "上传成功");}return "success";}}