您的位置:首页 > 编程语言 > Java开发

黑马程序员---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日---------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: