亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

關于Struts2的文件上傳

2019-11-14 20:57:48
字體:
來源:轉載
供稿:網友
關于Struts2的文件上傳

要實現Struts2框架的文件上傳,需要用到2個jar包

  1. commons-fileupload-1.2.2.jar
  2. commons-io-2.0.1.jar

由于文件解析Struts2內部已經幫我們做好了,大大降低了開發難度,我們只需要在Action里設置好對應的參數,目錄進行使用即可。

來個小示例:

upload.jsp

這個頁面的表單有三點需要注意的:

1、表單必須使用post方式提交  2、表單編碼類型 enctype="mult

 1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 <%@ taglib 

UploadAction.java

這里有幾個注意點:

1、三個成員變量的命名是有規范的:

private File upload里的的upoload一樣要和你上傳提交頁面里的name屬性值對應一致

文件類型和文件名命名分別為:頁面name屬性值+ContentType,頁面name屬性值+FileName

2、提供setter方法,以便接收對應的數據

3、定義目標文件存放處,用commons-io-2.0.1.jar包提供的FileUtils工具類把上傳文件復制到指定位置

 1 package com.lcw.struts2.upload; 2  3 import java.io.File; 4 import java.io.IOException; 5  6 import org.apache.commons.io.FileUtils; 7 import org.apache.struts2.ServletActionContext; 8  9 import com.opensymphony.xwork2.ActionSupport;10 11 public class UploadAction extends ActionSupport {12     //<s:file label="上傳文件:" name="upload"></s:file>13     private File upload;//命名應該和上傳頁面name屬性值保持一致14     private String uploadContentType;//屬性值+ContentType15     private String uploadFileName;//屬性值+FielName16     17     public void setUpload(File upload) {18         this.upload = upload;19     }20 21     public void setUploadContentType(String uploadContentType) {22         this.uploadContentType = uploadContentType;23     }24 25     public void setUploadFileName(String uploadFileName) {26         this.uploadFileName = uploadFileName;27     }28 29     public String upload() {30         File destFile = new File(ServletActionContext.getServletContext()31                 .getRealPath("/uploads")32                 + "/" + uploadFileName);33         try {    34             //工具類35             FileUtils.copyFile(upload, destFile);36         } catch (IOException e) {37             e.printStackTrace();38         }39         return SUCCESS;40     }41 }

struts.xml

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4     "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 <struts> 6     <constant name="struts.devMode" value="true" />     7     <!-- 全局國際化配置 --> 8     <constant name="struts.custom.i18n.resources" value="messages"></constant> 9 10     <package name="struts2test" extends="struts-default">11         <action name="upload" class="com.lcw.struts2.upload.UploadAction" method="upload">12             <result name="success">/index.jsp</result>13             <result name="input">/upload.jsp</result>14         </action>15     </package>16 17 </struts>

看下效果:

到這里基本的上傳操作已經完成了,下面來下關于上傳文件的配置參數:

首先我們打開Struts2的核心包文件:

在這個文件里,我們可以找到一些關于Struts2的常量和默認參數設置

其中我們可以看到2個參數:

①struts.multipart.saveDir    --默認的上傳路徑

struts.multipart.maxSize=2097152    --默認上傳文件的大小

若我們想改變參數設置,我們可以在struts.xml里配置,例如改變上傳文件大小限定..于此類推(這里改變的是全局設定)

1 <constant name="struts.multipart.maxSize" value="200000"></constant>

若我們想對單獨的表單做設定,struts2的攔截器FileUpload有3個屬性可以供我們選擇

①fileUpload.maximumSize: 上傳文件的最大長度(以字節為單位), 默認值為 2 MB②fileUpload.allowedTypes: 允許上傳文件的類型, 各類型之間以逗號分隔③fileUpload.allowedExtensions: 允許上傳文件擴展名, 各擴展名之間以逗號分隔

關于參數,我們可以打開struts2的核心包里的struts-default.xml進行查看

我們可以發現fielUpload攔截器處于Struts2默認的攔截棧里,并且可以發現這個攔截棧引用了workflow,調用Action的validate方法,一旦有錯誤返回,重新定位到INPUT頁面

例如:我們保持以上上傳代碼不變,在配置文件的Actin里添加:

1 <interceptor-ref name="defaultStack">2                 <param name="fileUpload.allowedExtensions">.txt</param>3 </interceptor-ref>

設置允許上傳文件類型為txt,此時來看看效果:

很明顯,上傳失敗了,也就意味我們的配置文件限制起作用了。

那么關于錯誤信息的回顯

1、 若我們是針對常量做設置,出錯則跳轉input 視圖, 通過 <s:actionError /> 回顯錯誤信息

2、若我們是對fileLoad做設置,出錯則在頁面通過 <s:fieldError /> 回顯錯誤信息

例如上面出現的回顯錯誤信息File extension not allowed,我們可以在struts2的核心jar的struts-messages.properties里找到

其中的{0}{1}{2}{3}參數分別代表upload,"C和C++程序員的Lua快速入門.pdf" ,"upload__689312be_147f80f105d__8000_00000005.tmp" ,application/pdf

我們可以來個國際化覆蓋對應的key值,進行我們想要的回顯信息:

我上傳一個Word文件,看下此時的頁面效果:

搞定搞定,寫博客還是蠻累的。。。關于Struts2的多文件上傳請戳這里:http://www.49028c.com/lichenwei/p/3928200.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品国产91久久| 国产精品久久久久7777婷婷| 国产亚洲欧美aaaa| 日韩中文字幕亚洲| 日韩欧美国产激情| 亚洲国产私拍精品国模在线观看| 欧美激情2020午夜免费观看| 色综合老司机第九色激情| 欧美高跟鞋交xxxxhd| 亚洲在线免费观看| 国产视频久久久久| 91久久精品视频| 亚洲国产精品99| 久久久精品国产网站| 伊人男人综合视频网| 欧美激情国产高清| 奇门遁甲1982国语版免费观看高清| 成人午夜高潮视频| 国产亚洲精品日韩| 欧美日韩国产黄| 一区二区欧美日韩视频| 欧美最猛性xxxxx免费| 夜夜狂射影院欧美极品| 欧美大尺度电影在线观看| 成人欧美一区二区三区黑人| 91久久综合亚洲鲁鲁五月天| 97精品一区二区三区| 久久男人av资源网站| 97婷婷大伊香蕉精品视频| 国产精品美女无圣光视频| 亚洲精品午夜精品| 伊人一区二区三区久久精品| 美女啪啪无遮挡免费久久网站| 国产中文字幕日韩| 欧日韩不卡在线视频| 911国产网站尤物在线观看| 亚洲国产精品成人精品| 亚洲欧美日韩一区在线| 久久久精品在线| 成人信息集中地欧美| 91爱爱小视频k| 国产在线一区二区三区| 免费不卡在线观看av| 在线日韩中文字幕| 国产精品香蕉av| 精品国产一区二区三区久久| 91香蕉嫩草神马影院在线观看| 国产女精品视频网站免费| 亚洲欧美国产精品久久久久久久| 亚洲成人av资源网| 久久91超碰青草是什么| 91最新在线免费观看| 最近中文字幕mv在线一区二区三区四区| 91老司机在线| 欧美乱大交xxxxx| 成人av电影天堂| 国产午夜精品美女视频明星a级| 亚洲直播在线一区| 欧美老少配视频| 久久精品这里热有精品| 8x海外华人永久免费日韩内陆视频| 88国产精品欧美一区二区三区| 一区二区三区高清国产| 亚洲精品乱码久久久久久金桔影视| 国产精品久久一区主播| 亚洲国产一区二区三区四区| 成人两性免费视频| 午夜精品久久久久久久男人的天堂| 亚洲女性裸体视频| 欧美激情久久久久| 日韩精品极品在线观看播放免费视频| 亚洲人成电影在线观看天堂色| 亚洲第一区在线| 97成人精品视频在线观看| 日韩视频免费在线| 国产91色在线免费| 韩国三级日本三级少妇99| 自拍偷拍亚洲区| 91久久久久久久久久久久久| 亚洲最新av在线网站| 91精品久久久久| 最好看的2019的中文字幕视频| 欧美一级片免费在线| 一区二区三区四区在线观看视频| 最近更新的2019中文字幕| 欧美久久精品午夜青青大伊人| 亚洲a∨日韩av高清在线观看| 久久精品国产欧美亚洲人人爽| 亚洲国内精品在线| 欧美在线视频在线播放完整版免费观看| 国产成人精品日本亚洲专区61| 91久久在线播放| 国产在线98福利播放视频| 亚洲午夜精品久久久久久久久久久久| 欧美成人在线免费视频| 国内精品久久久久久久| 国产欧美精品日韩精品| 粉嫩老牛aⅴ一区二区三区| 中文字幕亚洲第一| 亚洲精品国偷自产在线99热| 亚洲精品国精品久久99热| 国产精品中文在线| 国外成人在线播放| 亚洲美女又黄又爽在线观看| 色先锋资源久久综合5566| 欧美大人香蕉在线| 成人在线观看视频网站| 欧美精品videofree1080p| 最新国产成人av网站网址麻豆| 日本亚洲欧美三级| 欧美放荡办公室videos4k| 久久人人爽亚洲精品天堂| 中文字幕精品—区二区| 欧美性猛交99久久久久99按摩| 奇米成人av国产一区二区三区| 色综合天天综合网国产成人网| 九九热99久久久国产盗摄| 国产精品扒开腿爽爽爽视频| 美女福利精品视频| 萌白酱国产一区二区| 少妇av一区二区三区| 成人黄色免费在线观看| 亚洲欧美日韩精品久久| 欧美国产日韩中文字幕在线| 亚洲天堂色网站| 国产亚洲免费的视频看| 久久91亚洲人成电影网站| 51色欧美片视频在线观看| 亚洲人高潮女人毛茸茸| 精品福利在线看| 欧美精品18videos性欧| 最近2019年日本中文免费字幕| 7m精品福利视频导航| 日韩日本欧美亚洲| 91高清视频免费| 亚洲精品一区二区三区婷婷月| 欧美一级高清免费播放| 91久久综合亚洲鲁鲁五月天| 精品亚洲一区二区| 日韩欧美在线中文字幕| 亚洲人精选亚洲人成在线| 成人av色在线观看| 18久久久久久| 国产精品69久久| 成人免费高清完整版在线观看| 日本亚洲欧美成人| 亚洲男女性事视频| 国产精品极品美女粉嫩高清在线| 国产亚洲精品91在线| 一个人看的www欧美| 91在线免费观看网站| 国产精品成人一区二区| 欧美成人免费一级人片100| 国产精品久久久久久久久久久不卡| 中文字幕在线成人| 九九视频这里只有精品| 97超级碰碰碰久久久| 亚洲精品美女免费| 一区二区三区日韩在线| 97视频免费观看| 久久综合伊人77777| 在线观看成人黄色| 欧美性高潮在线| 欧美理论在线观看|