Struts2文件上传

**form表单中的属性值设置**

* method="post"  文件上传要用post方式提交表单

* enctype="multipart/form-data"    以二进制流的方式传输数据

*<input type="file" name="myfile">  表单中的文件上传组件

 

**struts文件上传**

 Struts2框架的使用拦截器完成了文件上传,并且底层使用也是FileUpload开源的组件。

* 提供 FileUpload 拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容

* fileUpload拦截器 默认在 defaultStack 栈中, 默认会执行的

* 在Action中编写文件上传,需要定义三个属性

> 文件类型File ,属性名与表单中file的name属性名一致.

> 字符串类型String , 属性名:前段是name属性名一致 + ContentType;

> 字符串类型String , 属性名:前段是name属性名一致+FileName;

> 最后需要为上述的三个属性提供set方法。

> 可以通过FileUtils提供 copyFile ()方法进行文件复制,将上传文件 保存到服务器端

 

** 文件上传中存在的问题**

* 先配置input逻辑视图

* 在页面中显示错误信息

* 文件上传的总大小默认值是2M,如果超过了2M,程序会报出异常。可以使用<s:actionError>来查看具体信息!

> 解决总大小的设置,找到常量:

* struts.multipart.parser=jakarta                -- 默认文件上传解析器,就是FileUpload组件

* struts.multipart.saveDir=                               -- 文件上传的临时文件存储目录

* struts.multipart.maxSize=2097152                -- 文件上传的最大值(总大小),默认是2M

> 可以在struts.xml中设置常量,修改文件上传的默认总大小!

* <constant name="struts.multipart.maxSize" value="5000000"></constant>

 

**文件上传拦截器配置**

可以通过配置拦截器来设置文件上传的一些属性

* 先在<action>标签中引入文件上传的拦截器

<interceptor-ref name="defaultStack">

<!-- 设置单个上传文件的大小 -->

<param name="fileUpload.maximumSize">2097152</param>

<!-- 设置扩展名,多个扩展名用逗号隔开 -->

<param name="fileUpload.allowedExtensions">.txt</param>

</interceptor-ref>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值