1.1. 文件上传的实现步骤
1)在表单
Action类:
private File upload; //上传文件的File对象
private String uploadFileName; //上传文件的文件名
private String uploadContentType; //上传文件的内容类型
//getter & setter方法
4)在Action类的业务方法中将File对象复制到服务器端对应的目录下。
//工具方法,将文件source的内容复制到文件dest中
publicstaticvoid copyFile(File source,File dest) throws Exception{
//创建输入流和输出流
FileInputStream fis=new FileInputStream(source);
FileOutputStream fos=new FileOutputStream(dest);
//fis--->fos
byte[] b=newbyte[1024];
int len;
while((len=fis.read(b))!=-1){
fos.write(b, 0, len);
}
//关闭流
fis.close();
fos.close();
}
1.2. Struts2文件上传的运行过程
1)fileupload拦截器将浏览器端的文件复制到服务端的临时目录下(由struts.multipart.saveDir指定):
客户端文件 ---> saveDir/临时文件
2)fileupload拦截器创建临时文件的File对象,赋给Action类对应File类型的upload属性:
saveDir/临时文件 ---> File upload
同时设置uploadFileName属性和uploadContentType属性。
3)在Action类将File upload复制到服务器端指定的目录下:
File upload ---> images/uploadFileName
------------------------------------------------------------------>
具体实现
1.测试页面,主要关注文件域开始以及相应form表单跳转的action链接