struts2框架之文件上传(参考第三天学习笔记)

时间:2023-03-08 22:50:20
struts2框架之文件上传(参考第三天学习笔记)

上传

1. 上传对表单的要求
* method=post
* enctype=multipart/form-data

2. 上传对servlet要求
* getParameter()不能再使用!

----------------------------------

Struts使用名为fileupload的拦截器完成上传。

1. 拦截器首先查看表单是否为multipart/form-data
2. 如果为multipart/form-data,那么拦截器会把file字段的数据封装到Action的三个属性中

-----------------------------------

一对三

* <input type="file" name="myupload"/> 文件表单项,文件字段。
* 对应Action的三个属性:
String myuploadFileName; 上传文件的名称
String myuploadContentType; 上传文件的MIME类型
File myupload; 上传文件的数据

-----------------------------------

上传配置

6个配置项,其中有3个是常量,还有3个是拦截器参数

1. 常量
commons-fileupload
用来指定上传组件
struts.multipart.parser=指定底层的上传组件
可选值:jakarta(它是默认值,它表示commons-fileupload)、cos(近几百看没有更新过)、pell(市场使用比较少)
struts.multipart.saveDir=指定临时文件目录
struts.multipart.maxSize=指定整个请求的大小,单位为字节,默认值为2M

2. 拦截器参数
maximumSize=单个文件的大小限制,单位为字节
allowedTypes=允许上传的MIME类型
allowedExtensions=允许上传的文件扩展名

-----------------------------------

国际化错误信息

struts.messages.error.uploading=上传出错
struts.messages.error.file.too.large=单个文件超出限制
struts.messages.error.content.type.not.allowed=非法的MIME类型
struts.messages.error.file.extension.not.allowed=非法扩展名
struts.messages.upload.error.SizeLimitExceededException=整个请求大小超出限制

-----------------------------------