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

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

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

    Java Study Center  
    日歷
    <2008年9月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011
    統計
    • 隨筆 - 40
    • 文章 - 3
    • 評論 - 0
    • 引用 - 0

    導航

    常用鏈接

    留言簿(1)

    隨筆檔案(40)

    文章檔案(3)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    今天我用commons-fileupload組件上傳文件,代碼是正確的,而且我把commons-fileupload-1.2.1.jar,commons-io-1.4.jar也導入到項目目項中,但總是出現這樣那樣的錯誤,讓我花了不少的時間,所以我把相關發出來,對有此類的問題的朋友有所幫助
    如:
    java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
    ……………………
    在網上查了很多資料,后來總結了一下,如果你是在struts2項目中用commons-fileupload組件的話,那就應

    該把修改web.xml,把原來的
    <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>/*</url-pattern>
     </filter-mapping>
    改為
    <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>*.action</url-pattern>
     </filter-mapping>
    而上傳頁面調用時直接用文件名調用(如upload.jsp)。struts2只處理 *.action 的請求。
    或者
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    </filter>

    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    去掉也行

    若是java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException錯誤
    那就有可能是導包的問題,若用的是右擊項目,選擇屬性,然后導入相應的包,就有可能出顯此類的錯誤,解決方法是:把commons-fileupload-1.2.1.jar,commons-io-1.4.jar復制到到WEB-INF下的lib目錄中,雖然效果是一樣,但不會出錯了

    附:
    upload.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>My JSP 'upload.jsp' starting page</title>
    </head>  
      <body>
      <form action="upload" method="post" enctype="multipart/form-data">
       用戶名:<input type="text" name="username"><br>
       密碼:<input type="password" name="password"><br>
       文件1:<input type="file" name="file1"><br>
        文件2:<input type="file" name="file2"><br> 
       <input type="submit" value="提交"><br>
      </form>
      </body>
    </html>
    UploadServlet.java

    package com.test.servlet1;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;

    public class UploadServlet extends HttpServlet {

     public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {
      DiskFileItemFactory factory = new DiskFileItemFactory();
      String path = request.getRealPath("/upload");
      // 設置傳輪輸文件的大小,當小于1024時,把文件存在茲盤上
      factory.setRepository(new File(path));
      factory.setSizeThreshold(1024 * 1024);
      ServletFileUpload upload = new ServletFileUpload(factory);
      try {
       List<FileItem> list = upload.parseRequest(request);
       for(FileItem item : list){
        if(item.isFormField()){
         String name = item.getFieldName();
         String value  = item.getString("GB2312");
         request.setAttribute(name, value);
        }else{
         String name = item.getFieldName();
         String value = item.getName();
         int start = value.lastIndexOf("\\");
         String fileName = value.substring(start+1);
         request.setAttribute(name, fileName);
         //item.write(new File(path,fileName));    
         OutputStream os = new FileOutputStream(new File(path,fileName));
         InputStream is = item.getInputStream();
         // 將文件is寫到os里
         byte[] buffer = new byte[400];
         int lenght = 0 ;
         while((lenght = is.read(buffer ))>0){
          os.write(buffer,0,lenght);
         }
         os.close();
         is.close();
        }
       }
      } catch (FileUploadException e) {
       // TODO Auto-generated catch block
       System.out.println("文件上傳出錯"+e.getMessage());
       e.printStackTrace();
      }
      request.getRequestDispatcher("upload/result.jsp").forward(request, response);
     }
    }
    result.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>   
        <title>My JSP 'result.jsp' starting page</title>
      </head> 
      <body>
     用戶名:${requestScope.username }
     密碼:${requestScope.password }
     文件1:${requestScope.file1 }
     文件2:${requestScope.file2 }
      </body>
    </html>


    posted on 2008-09-18 14:57 綠茶_鄭州 閱讀(512) 評論(0)  編輯  收藏

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


    網站導航:
     
     
    Copyright © 綠茶_鄭州 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 亚洲精品无码成人片久久| 激情无码亚洲一区二区三区| 99麻豆久久久国产精品免费| 亚洲成年人啊啊aa在线观看| 亚洲国产一区二区a毛片| 色欲色欲天天天www亚洲伊| 成人免费av一区二区三区| 亚洲AⅤ视频一区二区三区| 亚洲特级aaaaaa毛片| 一级毛片不卡免费看老司机| 免费国产真实迷j在线观看| 亚洲福利视频网站| xxxxx免费视频| 亚洲日韩AV无码一区二区三区人| 国产一精品一av一免费爽爽| 国产成人aaa在线视频免费观看 | 国产成人va亚洲电影| 亚洲a一级免费视频| 亚洲日韩区在线电影| 亚洲黄色免费电影| 日韩va亚洲va欧洲va国产| 免费无码毛片一区二区APP| 亚洲一级视频在线观看| 国产大片91精品免费看3| 国产黄在线观看免费观看不卡| 好大好硬好爽免费视频| 亚洲av成本人无码网站| 亚洲亚洲人成综合网络| 91制片厂制作传媒免费版樱花| 亚洲日韩中文字幕在线播放| 全免费a级毛片免费看| 亚洲成_人网站图片| 国产日韩成人亚洲丁香婷婷| 一级毛片不卡片免费观看| 亚洲精品蜜夜内射| 国产成人A在线观看视频免费| 亚洲日本香蕉视频观看视频| 国产成人免费高清激情视频| 一个人免费播放在线视频看片| 亚洲av无码国产精品色在线看不卡 | 亚洲麻豆精品国偷自产在线91|