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