Struts2上传

来源:互联网 发布:svd求逆矩阵 python 编辑:程序博客网 时间:2024/06/07 05:59

Struts2上传

1. 文件上传的原理:

表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:

1) application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。

2) multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。

3) text/plain:这种方式主要适用于直接通过表单发送邮件的方式。

 

文件上传原理是,通过为表单元素设置enctype=multipart/form-data”属性,让表单提交的数据以二进制编码的方式提交,在接收此请求的Servlet中用二进制流来获取内容,就可以取得上传文件的内容,从而实现文件的上传。

 

 

Java领域中,有两个常用的文件上传项目:

一个是Apache组织JakartaCommon-FileUpload组件;

http://commons.apache.org/fileupload/

另一个是Oreilly组织的COS框架;

http://www.servlets.com/cos/

利用这两个框架都能很方便的实现文件的上传。

2.  Struts2的文件上传:

Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础上做了进一步封装,更进一步简化了文件上传。

Struts2默认使用的是JakartaCommon-FileUpload框架来上传文件,

因此,要在web应用中增加两个Jar文件:commons-fileupload-1.2.jarcommons-io-1.3.1.jar。它在原上传框架上做了进一步封装,简化了文件上传的代码实现,取消了不同上传框架上的编程差异。

将文件上传组件的JAR文件复制到项目的classpath路径下。

如果要改成其它的文件上传框架,可以修改struts.multipart.parser常量的值为cos/pell,默认值是jakata。并在classpath中增加相应上传组件的类库。

 

步骤一:创建带上传表单域的页面

页面特殊之处只是把表单的enctype属性设置为multipart/form-data

method="POST"

<input type="file" name="upload" />

步骤二:创建处理上传请求的Action

Strut2Action类直接通过File类型属性直接封装了上传文件的文件内容,但这个File属性无法获取上传文件的文件名和文件类型,所以Struts2就直接将文件域中包含的上传文件名和文件类型的信息封装到uploadFileNameuploadContentType属性中,也就是说Struts2针对表单中名为xxx的文件域,在对应的Action类中使用3个属性来封装该文件域信息

类型为Filexxx属性:用来封装页面文件域对应的文件内容。

类型为StringxxxFileName属性:用来封装该文件域对应的文件的文件名。

类型为StringxxxContentType属性:用来封装该文件域应用的文件的文件类型。

步骤三:配置Struts.xml

<action name="photo_add" class

  • Struts2上传
  • struts2上传
  • struts2 上传
  • Struts2上传
  • struts2上传
  • struts2上传
  • [Struts2]Struts2的文件上传
  • struts2上传文件(三) struts2上传文件
  • Struts2的文件上传
  • Struts2文件上传
  • Struts2 上传文件实例
  • struts2文件上传
  • struts2文件上传
  • Struts2实现简单上传
  • Struts2的文件上传
  • struts2-上传文件(1)
  • struts2-上传文件(2)
  • Struts2上传文件示例
  • numeric_limts
  • Linux Shell变量的使用轻松学习
  • 放弃,也是一种选择......
  • shell 以及shell编程
  • ubuntu10.04下安装gcc4.1.2
  • Struts2上传
  • winrar压缩VS2005解决方案时排除中间文件
  • JPA 学习日志 1
  • SQLServer2005关系图打不开
  • 技术帖目录(随应用更新)
  • JPA 学习日志2
  • fastreport中的对汉字的支持
  • 修改Ubuntu dash shell为bash shell
  • ShopNum1分销版与其他同类型软件的区别
  • 原创粉丝点击