admin管理员组

文章数量:1531765

2024年6月13日发(作者:)

《开始Struts 2》

第七章

struts2的上传下载

文件上传是Web应用经常需要面对的问题,在大部分时候,用户的请求参数是在表单域输入的字符串,

但如果为表单元素设置enctype="multipart/form-data”属性,则提交表单时不再以字符串方式提交请求参

数,而是以二进制编码的方式提交请求,此时直接通过HttpServletRequest的getParamete:方法无法正常获取

请求参数的值,我们可以通过二进制流来获取请求内容—通过这种方式,就可以取得希望上传文件的内容,从而

实现文件的上传。

kriss 第 - 2 - 页 3/26/2013

Struts 2 未提供自己的请求解析器,也就是说,Struts 2不会自己去处理multipart/form-data的请求,

在Struts 2的ties配置文件中,我们看到了下面的配置代码,它们主要用于配置Struts 2上

它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts 2在原有的上传解析器基础上做了进

一步封装,更进一步简化了文件上传。

传文件时的卜传解析器。

#指定使用cos的文件上传解析器

# art .parser=cos

#指定使用Pell的文件上传解析器

#=pell

#Struts 2默认使用Jakarta的Common-FileUpload的文件上传解析器

rt .parser=jakarta

Struts 2默认使用的是Jakarta的Common-FileUpload的文件上传框架,要使用Struts 2的文件上传功

能,则需要在Web应用中增加两个commons-io-1.3. l .ja:和commons-fileupload-1.2. jar

文件上传

例子:

上传页面

文件描述:

上传

" />

上传的action

private String fileDesc;//和前台的是同一个

private File file;//这是IO的File,回顾下strust1.x的FormFile

//这两个字段是被注入进来的,前台页面并没有这两个表单域

private String fileFileName;

private String fileContentType;

/**

* 获得保存的路径

*/

private String getSaveDir(){

return

vletContext().getRealPath("/userDatas");

}

@Override

public String execute() throws Exception {

本文标签: 文件上传请求表单解析器