1.在struts 1.1中,已经默认提供了对form的enctype="multipart/form-data"的解析。
在action中,我们可以通过下面的代码得到文件,以一个文件为例
FormFile fo = (FormFile)actionForm.getMultipartRequestHandler().getFileElements().get("theFile1");
try {
File f = new File("d://temp//a.txt");
FileOutputStream o = new FileOutputStream(f);
o.write(fo.getFileData());
o.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
2.相关的几个QA
struts识别multipart的request,并且自动解析,struts已经处理请求,并且放置在FormBean中,再解析request会返回null。
如果我需要在action中自己解析multipart的请求,配置action-mapping不关联formbean(更好的方法是替换默认的Multipart Handler,参见Struts相关的文档。)