设为首页 加入收藏

TOP

Struts2文件上传的运行过程实现
2014-11-24 11:25:05 来源: 作者: 【 】 浏览:0
Tags:Struts2 文件 上传 运行 过程 实现

1.1. 文件上传的实现步骤


1)在表单

标签设置属性enctype的值为"multipart/form-data", enctype属性用于指定表单数据的编码方式, “multipart/form-data"编码方式指定以二进制流的方处理表单数据,并把文件域指定文件的内容封装在请求参数中。



2)在jsp页面添加文件域标签, name属性用于指定文件域的名称。


3)在Action类中定义3个属性来封装该文件域的信息:


a. 类型为File的xxx属性封装该文件域对应的文件内容。


b. 类型为String的xxxFileName属性封装文件域对应的文件的文件名。


c. 类型为String的xxxContentType属性封装文件域对应的文件的文件类型。


Example:


JSP页面:






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链接


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中的各种排序算法 下一篇C#中调用OpenCTM打开.obj三维模型..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)