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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數據加載中……

    用Struts上傳多個文件的方法 選擇自 techyang 的 Blog

    最近在做Struts項目時遇到了上傳多個文件的問題。在網上查了不少資料,也沒有找到用Struts上傳多個文件的例子。我經過幾天的研究,實現了用Struts上傳多個文件的功能。現在貼出來讓大家共享!

        一。建立ActionForm

    package com.cnehu.struts.form;
    import javax.servlet.http.HttpServletRequest;

    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.upload.FormFile;
    import org.apache.struts.upload.MultipartRequestHandler;

    /**
     * <p>
     * Title:UpLoadForm
     * </p>
     * <p>
     * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
     * </p>
     * @author techyang
     * @version 1.0
     */

    public class UpLoadForm extends ActionForm
    {
        public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";

        protected FormFile theFile;
        protected FormFile theFile2;
        public FormFile getTheFile()
        {
            return theFile;
        }

        public void setTheFile(FormFile theFile)
        {
            this.theFile = theFile;
        }

        public ActionErrors validate(ActionMapping mapping,
                HttpServletRequest request)
        {
            ActionErrors errors = null;
            //has the maximum length been exceeded?
            Boolean maxLengthExceeded = (Boolean) request
                    .getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
            if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
            {
                errors = new ActionErrors();
                errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError(
                        "maxLengthExceeded"));
            }
            return errors;

        }
        /**
         * @return Returns the theFile2.
         */
        public FormFile getTheFile2()
        {
            return theFile2;
        }
        /**
         * @param theFile2 The theFile2 to set.
         */
        public void setTheFile2(FormFile theFile2)
        {
            this.theFile2 = theFile2;
        }
    }

    二。建立ActionServlet

    package com.cnehu.struts.action;

    import java.io.*;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.FormFile;

    import com.cnehu.struts.form.UpLoadForm;

    /**
     * <p>
     * Title:UpLoadAction
     * </p>
     * <p>
     * Copyright: Copyright (c) 2005 techyang http://blog.csdn.net/techyang
     * </p>
     * @author techyang
     * @version 1.0
     */

    public class UpLoadAction extends Action
    {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception
        {
                String encoding = request.getCharacterEncoding();
                if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
                {
                    response.setContentType("text/html; charset=gb2312");//如果沒有指定編碼,編碼格式為gb2312
                }
                UpLoadForm theForm = (UpLoadForm) form;
                FormFile file = theForm.getTheFile();//取得上傳的文件
             
                FormFile file2=theForm.getTheFile2();
                try
                {              
                    /*
                     * 取當前系統路徑D:\Tomcat5\webapps\coka\ 其中coka 為當前context
                     */
                    String filePath = this.getServlet().getServletContext()
                    .getRealPath("/");
                    InputStream stream = file.getInputStream();//把文件讀入
                  
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                  
                    /*
                     * 建立一個上傳文件的輸出流 如果是linux系統請把UploadFiles后的"\\"換成"/"
                     */
                    OutputStream bos = new FileOutputStream(filePath +
                            "UploadFiles\\"+file.getFileName());
                   
                    //D:\Tomcat5\webapps\coka\UploadFiles\DSC01508.JPG
                  /*  System.out.println(filePath +
                            "UploadFiles\\"+file.getFileName());
                    System.out.println(filePath);*/
                    request.setAttribute("fileName",filePath + "/"
                            + file.getFileName());
                    int bytesRead = 0;
                    byte[] buffer = new byte[8192];
                    while ((bytesRead = stream.read(buffer, 0, 8192)) != -1)
                    {
                        bos.write(buffer, 0, bytesRead);//將文件寫入服務器
                    }          
                    bos.close();
                    stream.close();
                   
                    InputStream stream2 = file2.getInputStream();//把文件讀入
                    ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
                    OutputStream bos2 =  new FileOutputStream(filePath +
                            "UploadFiles\\"+file2.getFileName());//建立一個上傳文件的輸出流
                    int bytesRead2 = 0;
                    byte[] buffer2 = new byte[8192];
                    int i=0;
                    while ((bytesRead2 = stream2.read(buffer2, 0, 8192)) != -1)
                    {
                        bos2.write(buffer2, 0, bytesRead2);//將文件寫入服務器
                    }          
                    bos2.close();
                    stream2.close();
                   
                } catch (Exception e)
                {
                    System.err.print(e);
                }
                return mapping.findForward("display");
              
        }
    }

    三。建立上傳用的JSP文件 upload.jsp

    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <html:html>
    <head>
    <title>用Struts上傳文件</title>
    </head>
    <body>
    <html:form action="/uploadsAction" enctype="multipart/form-data">
    <html:file property="theFile"/>
    <html:file property="theFile2"/>

    <html:submit/>
    </html:form>
    </body>
    </html:html>

    四。配置struts-config.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
       <data-sources />
       <form-beans >
         <form-bean name="uploadsForm" type="com.cnehu.struts.form.UpLoadForm" /> 
       </form-beans>

       <global-exceptions />
       <global-forwards >
        
       </global-forwards>

       <action-mappings >
                
          <action name="uploadsForm" type="com.cnehu.struts.action.UpLoadAction" path="/uploadsAction">
     <forward name="display" path="/display.jsp" />
     </action>
        </action-mappings>
             
    </struts-config>


    全文完!

    posted on 2005-08-11 09:03 閱讀(243) 評論(0)  編輯  收藏 所屬分類: Struts

    主站蜘蛛池模板: 啦啦啦完整版免费视频在线观看 | 久久久久se色偷偷亚洲精品av| A国产一区二区免费入口| 免费大黄网站在线观| 国产精品亚洲五月天高清| 国产精品四虎在线观看免费| 亚洲成a人片在线不卡一二三区| 女人18一级毛片免费观看| 亚洲AV香蕉一区区二区三区| 永久免费AV无码网站在线观看| 亚洲av无码专区在线电影| 欧洲精品免费一区二区三区| 亚洲精品永久在线观看| 国产精品免费电影| 无码免费又爽又高潮喷水的视频| 爱情岛论坛网亚洲品质自拍| 青柠影视在线观看免费| 自怕偷自怕亚洲精品| 毛片免费观看网址| 日韩大片在线永久免费观看网站 | 深夜a级毛片免费视频| 亚洲色无码一区二区三区| 桃子视频在线观看高清免费视频| 亚洲精品资源在线| 免费无码又爽又刺激毛片| 国产亚洲漂亮白嫩美女在线| 区久久AAA片69亚洲| 日韩在线播放全免费| 国产AV日韩A∨亚洲AV电影 | h视频在线免费看| 亚洲精品国产第一综合99久久| www.亚洲色图.com| 无码免费一区二区三区免费播放| 亚洲一区二区三区亚瑟| 亚洲国产精品视频| 91在线手机精品免费观看| 小说区亚洲自拍另类| 亚洲国产精品线在线观看| 日韩a级毛片免费视频| A片在线免费观看| 亚洲国产av玩弄放荡人妇|