<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

     

    Struts2文件上傳一些小細節(jié)

    大家都知道struts2對文件上傳做了很好的封裝,使文件上傳不再那么恐怖。這里面struts2的文件上傳主要依賴的是org.apache.struts2.interceptor.FileUploadInterceptor這個攔截器

    關(guān)于這個攔截器我不想做過多的研究,這里主要討論的是該攔截器里面定義的幾個關(guān)于文件上傳的重要屬性。

    protected Long maximumSize;   //允許上傳單個文件的大小單位為字節(jié)

    protected String allowedTypes; //允許上傳的文件類型詳見tomcatweb.xml文件

    protected Set allowedTypesSet;

    //允許上傳的文件類型Set集合詳見tomcatweb.xml文件

    allowedTypesallowedTypesSet屬性如有多個值之間用逗號隔開

    以上的屬性主要配置在struts.xml中對應(yīng)文件上傳Action的攔截器中

    示列:

    <!-- 文件上傳Action -->

             <action name="Upload" class="UploadAction">

                 <result name="success">success.jsp</result>

                 <result name="input">upload.jsp</result>

                 <interceptor-ref name="fileUpload">

    //設(shè)置允許上傳單個文件的大小單位為字節(jié)

                     <param name="maximumSize">102400</param>

    //允許上傳的文件類型詳見tomcatweb.xml文件

                   <param name="allowedTypesSet">image/jpeg</param>

                 </interceptor-ref>

                 <interceptor-ref name="defaultStack"/>

             </action>

    注意:要使用文件上傳功能我們必須顯實的在對應(yīng)文件上傳的Action中指定<interceptor-ref name="fileUpload">這個攔截器及在該攔截器中配置我們需要的參數(shù),最后別忘了附加上<interceptor-ref name="defaultStack"/>這個默認的攔截器,這樣才能真正發(fā)揮struts2的文件上傳功能。

    示列代碼:

    Action中的示列代碼

    publicclass FileUploadAction extends ActionSupport {

        private File file;

        private String fileContentType;

        private String fileFileName;

        private String memo;

        @Override

        public String execute() throws Exception {

            String path=ServletActionContext.getRequest().getRealPath("/upload");

            if(file==null)

            {

                this.addFieldError("file", "文件不能為空,請選擇");

                returnINPUT;

            }else

            {

                InputStream is=new FileInputStream(this.getFile());

                OutputStream os=new FileOutputStream(new File(path,this.getFileFileName()));

                byte[] buf=newbyte[1024];

                int length=0;

                while((length=is.read(buf))>0)

                {

                    os.write(buf, 0, length);

                }

                is.close();

                os.close();

            }

            returnSUCCESS;

        }

        public File getFile() {

            returnfile;

        }

       

        publicvoid setFile(File file) {

            this.file = file;

        }

       

        public String getFileContentType() {

            returnfileContentType;

        }

        public String getFileFileName() {

            returnfileFileName;

        }

        public String getMemo() {

            returnmemo;

        }

       

        publicvoid setFileContentType(String fileContentType) {

            this.fileContentType = fileContentType;

        }

        publicvoid setFileFileName(String fileFileName) {

            this.fileFileName = fileFileName;

        }

        publicvoid setMemo(String memo) {

            this.memo = memo;

        }

       

    }

    jsp中的示列代碼

    <s:form action="Upload" enctype="multipart/form-data" method="post">

        <s:file name="file"></s:file>

        <s:textfield name="memo"></s:textfield>

        <s:submit></s:submit>

    </s:form>

    struts.xml中的示列代碼

    <action name="Upload" class="UploadAction">

                 <result name="success">/success.jsp</result>

                 <result name="input">/upload.jsp</result>

                 <interceptor-ref name="fileUpload">

                     <param name="maximumSize">102400</param>

                     <param name="allowedTypes">application/msword</param>

                 </interceptor-ref>

                 <interceptor-ref name="defaultStack"/>

    </action>

    注意:

    a)       設(shè)置文件上傳屬性在Action中對應(yīng)的類型的java.io.File;

    b)       設(shè)置文件上傳表單的enctype="multipart/form-data" method="post"

    private File file;

    private String fileContentType;

    private String fileFileName;

    c)       紅色標注的與文件上傳表單中文件上傳屬性的name一致

    d)       藍色的為固定寫法

    e)       對應(yīng)Action中攔截器的配置

    <interceptor-ref name="fileUpload">

                     <param name="maximumSize">102400</param>

                     <param name="allowedTypes">application/msword</param>

    </interceptor-ref>

    <interceptor-ref name="defaultStack"/>

    posted on 2009-10-21 10:33 雪山飛鵠 閱讀(599) 評論(0)  編輯  收藏 所屬分類: struts2
    主站蜘蛛池模板: 免费人成激情视频| 青青草国产免费久久久下载| 亚洲第一区精品观看| 蜜桃传媒一区二区亚洲AV| 毛片免费视频在线观看| 亚洲人av高清无码| 免费大片黄手机在线观看 | 午夜福利不卡片在线播放免费| 91亚洲国产成人久久精品网站| 无码国产精品一区二区免费16| 亚洲国产天堂久久综合网站| 久久成人无码国产免费播放| 亚洲av无码一区二区乱子伦as| 99热免费在线观看| 亚洲剧情在线观看| 免费鲁丝片一级在线观看| 青青免费在线视频| 亚洲精品无码mv在线观看网站| 无码专区AAAAAA免费视频| 亚洲专区中文字幕| 国产在线不卡免费播放| 九九热久久免费视频| 久久精品国产亚洲av麻| 99久久国产热无码精品免费 | 水蜜桃视频在线观看免费播放高清 | 亚洲婷婷五月综合狠狠爱| 久久久久久AV无码免费网站| 97久久国产亚洲精品超碰热| 国产精品久久免费视频| 在线观看片免费人成视频播放| 亚洲性天天干天天摸| 女人18毛片a级毛片免费视频| 国产精品亚洲综合| 亚洲成AV人在线播放无码| 动漫黄网站免费永久在线观看 | 精品亚洲成AV人在线观看| 性xxxx视频播放免费| 国产V片在线播放免费无码| 亚洲精品视频在线播放| 亚洲国产成人久久一区久久| 久久国产高潮流白浆免费观看|