<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: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 中文字幕永久免费视频| 亚洲AV无码专区在线电影成人| GOGOGO高清免费看韩国| 亚洲精品和日本精品| 又硬又粗又长又爽免费看| 亚洲色婷婷综合开心网| www.xxxx.com日本免费| 亚洲成A人片在线观看无码不卡 | 亚洲色图国产精品| 亚洲视频免费在线播放| 亚洲色丰满少妇高潮18p| 黄网址在线永久免费观看| 老司机免费午夜精品视频| 国产亚洲av片在线观看18女人| 男人天堂免费视频| 亚洲乱码日产精品BD在线观看| 在线播放免费播放av片| 国产亚洲视频在线| 久久亚洲国产视频| 免费国产作爱视频网站| 免费视频精品一区二区| 亚洲国产精品SSS在线观看AV| 又大又硬又爽又粗又快的视频免费| 亚洲AV综合色区无码二区爱AV| 在线观看91精品国产不卡免费| 国产黄片不卡免费| 亚洲免费一级视频| 亚洲第一成人影院| 1000部拍拍拍18勿入免费凤凰福利| 亚洲AV无码片一区二区三区| 中文字幕不卡亚洲 | 7x7x7x免费在线观看| 亚洲 欧洲 自拍 另类 校园| 亚洲阿v天堂在线2017免费| 桃子视频在线观看高清免费视频| 国产成人精品日本亚洲18图| 亚洲人成影院在线观看| 国产成人精品免费视频大| 全黄A免费一级毛片| 亚洲一区在线视频观看| 中文字幕中韩乱码亚洲大片|