struts 2 的action:
@Action(value="uploadFile",interceptorRefs={@InterceptorRef(params= {"allowedTypes","image/bmp,image/jpeg,image/png,image/gif","maximumSize","2000000"}, value="fileUpload"),@InterceptorRef("defaultStack")}, results={@Result(location="/WEB-INF/pages/uploadResult.jsp",type="dispatcher"), @Result(name="input",location="/WEB-INF/pages/uploadError.jsp",type="dispatcher")}, params={"savePath","/upload"}) public String upload() { FileOutputStream fos = null; FileInputStream fis = null; byte[] buffer = new byte[1024]; int len = 0; try { fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName()); fis = new FileInputStream(getUpload()); while ((len = fis.read(buffer)) > 0) { fos.write(buffer, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return SUCCESS; }
可以设置多个interceptor
fileUpload是interceptor的名称,可以在struts-default.xml中找到
allowedTypes是允许上传的文件类型
maximumSize是允许上传文件的大小限制,单位是字节
这些参数都可以在FileUploadInterceptor类中找到
还有,必须显式配置defaultStack