黑马程序员---struts2学习笔记之五(文件上传)
2015-08-06 22:27
507 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
struts2中文件上传
1.action中属性声明private FileuploadImage;//临时文件(用来存放上传的文件,命名要与前台表示文件上传的<input>标签是的name属性值要一致)。
[b] private[/b] String
uploadImageContentType; //上传文件的类型,命名方式为<input>标签是的name属性值+ContentType。
[b] private[/b] String
uploadImageFileName; //上传文件的文件名,命名方式为<input>标签是的name属性值+FileName。
2.前台页面上的标签:
***************************************************************
<form
action="xxAction"Method="post"
enctype="multipart/form-data">
简历:<input
type="file"
name="uploadImage"><br>
<input
type="submit"value="提交">
</form>
***************************************************************
特别的情况说明:enctype值一定要设置为"multipart/form-data",原因:表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。 默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据.
3.设置文件上传的类型、大小等限制:
3.1上传文件大小限制以常量的方式(配置总上传文件的大小):
<constant name="struts.multipart.maxSize" value="xxxx"></constant>
xxxx表示上传文件的大小,以字节为单位,默认为2M.
3.2在自定义的配置文件中配置上传文件类型、大小等限制:
因为在struts2中处理文件上传的是相应的拦截器,因为我们可以通过配置这个拦截器的工作参数来配置文件上传的一些条件,例如:
***************************************************************
<package
name="upload"
namespace="/upload"extends="struts-default">
<action
name="*_Action"class="com.struts2.upload.UploadAction"
method="{1}">
<result
name="uploadFile_ok">/upload/success.jsp</result>
<result
name="input">/error.jsp</result>
<interceptor-ref
name="defaultStack
">
<param
name="fileUpload.maximumSize">1097152</param>
<param
name="fileUpload.allowedTypes">text/plain</param>
<param
name="fileUpload.allowedExtensions">.txt</param>
</interceptor-ref>
</action>
</package>
***************************************************************
“<param name="fileUpload.maximumSize">1097152</param>”格式要求:
Name:拦截器名+属性名(拦截器底层确定);
<param>标签中:属性值。
本例子配置的是上传文件大小最多为1097152,类型为:text/plain,允许的扩展名:.txt。
***************************************************************
3.3当文件上传出现错误时,需要给前台页面一些信息反馈,可以通过配置文件的方式进行反馈,具体方式为:
自定义一个配置文件,将以下信息配置成相应的提示信息(来自底层struts-messages.properties文件中定义好,开发人员定义将复盖掉底层的配置):
struts.messages.error.uploading=提示1
struts.messages.error.file.too.large=提示2
struts.messages.error.content.type.not.allowed=提示3
struts.messages.error.file.extension.not.allowed=提示4
在主配置文件中以资源文件的形式引下(与上述类型转换中的资源文件引入一致)。
4.多文件上传:
将以上action中的与文件上传有关的属性都改成数组,属性命名与单文件上传一样,除此之外与单文件上传唯一的区别就是在后台处理的时候变成处理数组。
-------------------------------------------------------------2015年8月6日---------------------------------------------------------------------------------------------------
相关文章推荐
- JAVA学习第十六天
- Java(08-6)
- JAVA中的几个排序算法
- Java ArrayList 初始化
- java正则表达式入门
- SpringBoot 之 Jersey 集成示例代码(来自官网)
- Spring MVC:DispatcherServlet详解
- Java抓取新浪微博首页数据
- Java心得8
- 黑马程序员——struts2学习笔记四(类型转换)
- 关于Java单例
- Puzzler: Nested computeIfAbsent -Java 8
- JAVA技术交流群
- Struts2知多少(2) Struts2 是什么
- Java机试题目_怎样截取字符串
- 关于eclipse生成web工程的时候没有web.xml文件的解决方案
- Java汉字转换为拼音
- Spring的Ioc(控制反转)和DI(依赖注入)
- 理解Java的IO流 2015年8月6日 21:30:38
- Java实现算法之--二分查找法