Greedy的工作室

          posts - 23,comments - 7,trackbacks - 0
          一.建立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;

          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;

          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
                     {              
                         /*
                          * 取當前系統(tǒng)路徑D:\Tomcat5\webapps\coka\ 其中coka 為當前context
                          */
                         String filePath = this.getServlet().getServletContext().getRealPath("/");
                         InputStream stream = file.getInputStream();//把文件讀入
                       
                         /*
                          * 建立一個上傳文件的輸出流 如果是linux系統(tǒng)請把UploadFiles后的"\\"換成"/"
                          */
                         OutputStream bos = new FileOutputStream(filePath + "UploadFiles\\"+file.getFileName());
                         
                         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();//把文件讀入
                         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 2008-06-27 10:53 greedy 閱讀(150) 評論(0)  編輯  收藏 所屬分類: Struts

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 潞西市| 微山县| 井冈山市| 信丰县| 都兰县| 泸西县| 广灵县| 盘山县| 泸定县| 磐石市| 翁源县| 镇宁| 浙江省| 中方县| 阳东县| 呼玛县| 汤阴县| 勃利县| 鞍山市| 山阴县| 三台县| 舒城县| 巴彦县| 东方市| 岳西县| 山阴县| 泸水县| 苏尼特右旗| 宁夏| 扶沟县| 普陀区| 双流县| 库尔勒市| 罗田县| 丰宁| 翁源县| 开阳县| 乡宁县| 秦皇岛市| 石城县| 衡阳市|