struts2 文件上传

      这些天做项目,遇到struts2 文件上传的问题,过程曲折。虽然网上有好多资料,但是自己还是在整理一下,总结自己走的弯路,说说容易出错的地方:

      1、jsp

      <s:form action="XXXaction" method ="POST" enctype="multipart/form-data">
         <s:file name="photo"/><input name="add" type="submit" class="bAdd" value="Excel导入" />
       </s:form>

       在类似上面的jsp中<from>中的【method ="POST"】和【 enctype="multipart/form-data"】必不可少。所以类似

        <input  type="button" value="添加" οnclick="window.location.href=xxx.action'" />这样的直接URL提交方式是不行的。就这个问题搞了我好久。

 

       2、Action中的代码:属性“contentType”和“fileName”是必须的,名字不能变。“photo”就是jsp页面中的属性。方法setPhotoFileName(String fileName) 和setPhotoContentType(String contentType) 名字也不能变。

       /** 头像 */
       private File photo;
    
       /** 文件类型 */
       private String contentType;  

   
       /** 文件名 */
       private String fileName;

 

 /**
  * 头像文件的取得
  * @return 现在设定的值
  */
 public File getPhoto() {
  return photo;
 }
 /**
  * 头像文件的设置
  * @param empExcel新属性的值
  */
 public void setPhoto(File photo) {
  this.photo= photo;
 }

 /**
  * 文件类型的取得
  * @return
  */
 public String getContentType() {
  return contentType;
 }

 /**
  * 文件名的取得
  * @return 现在设定的值
  */
 public String getFileName() {
  return fileName;
 }

 /**
  * 文件名的设置
  * @param fileName新属性的值
  */
 public void setFileName(String fileName) {
  this.fileName = fileName;
 }

 /**
  * 取得文件名
  * @param fileName
  */
 public void setPhotoFileName(String fileName) {
        this.fileName = fileName;
    }
 
 /**
  * 取得文件类型
  * @param contentType新属性的值
  */
 public void setPhotoContentType(String contentType) {
        this.contentType = contentType;
    }

 

      3、struts.xml配置文件:<param name="allowedTypes">这个主要是配置可上传的文件类型,具体参数可在网上搜一下,很容易的。

<action name="upload"
   class="xxx.UploadAction">
   <!-- 定义三个逻辑视图和物理资源之间的映射 -->
   <param name="allowedTypes">
    image/bmp,image/PNG,image/gif,image/JPEG,image/jpg,image/pjpeg
   </param>
   <param name="maximumSize">102400000</param>
   <result name="error">/xxx.jsp</result>
   <result name="success">/xxx.jsp</result>
  </action>

 

      4、struts2 的文件上传需要两个jar包:commons-io-1.3.2.jar;commons-fileupload-1.2.1.jar;具体的版本自己选,最新的应该没有问题。

      似乎除了这些,没什么问题了。其实还是挺简单的,但有时候就是有些不太注意的小问题卡老半天,老闹心了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值