posts - 12,  comments - 2,  trackbacks - 0
          JSP/Servlet: Oreilly MultiPartRequest 檔案上傳  http://caterpillar.onlyfun.net/GossipCN/JSPServlet/FileUpload.htm
          使用瀏覽器進行檔案上傳時,是使用multipart/form-data編碼,然而Servlet容器并不會自動幫我們處理編碼,而必須由程式設(shè)計人員自行處理,在這個部份,我們可以使用Oreilly所提供的上傳套件MultiPartRequest,您可以至以下的網(wǎng)址下載,檔案是cos- 05Nov2002.zip:

          http://www.servlets.com/cos/index.html

          解開zip檔案之后,在lib目錄下可以找到cos.jar,將它復(fù)制至您的Web應(yīng)用程式的WEB-INF/lib下就可以了,基本上, Oreilly的MultiPartRequest相當?shù)娜菀资褂茫梢酝瑫r處理多個檔案的上傳,并且提供多個方法可以讓您取得上傳檔案的相關(guān)資訊。

          這邊提供一個簡單的例子,首先撰寫上傳的表單:

          • form.htm
          <html> 
          <head>
          <title>檔案上傳</title>
          <meta http-equiv="Content-Type"
          content="text/html; charset=Big5">
          </head>
          <body>
          <b>檔案上傳</b></font></p>

          <form name="UploadForm"
          enctype="multipart/form-data"
          method="post" action="upload.jsp">
          <input type="file" name="File1" size="20" maxlength="20">
          <br>
          <input type="file" name="File2" size="20" maxlength="20">
          <br>
          <input type="submit"value="上傳">
          </form>

          </body>
          </html>

          這邊示范兩個檔案的上傳,表單的enctype必須設(shè)定為multipart/form-data,而上傳方法是post,表單元件的輸入型態(tài)是 file,當然,上傳的檔案數(shù)在實際應(yīng)用時,是可以用JavaScript等方法來動態(tài)進行選擇的。

          上傳的動作處理,撰寫在upload.jsp中:

          • upload.jsp
          <%@page import="com.oreilly.servlet.MultipartRequest" %> 
          <%
          String saveDirectory = "/home/caterpillar/files/";
          // 限制上傳之檔案大小為 5 MB
          int maxPostSize = 5 * 1024 * 1024 ;
          MultipartRequest multi = new MultipartRequest(request ,
          saveDirectory , maxPostSize, "MS950");
          out.println("檔案上傳OK");
          %>

          注意到程式中import了com.oreilly.servlet.MultipartRequest, MultipartRequest可以限制檔案上傳的大小,最后一個參數(shù)是上傳檔案名稱的編碼,如果不設(shè)定的話,預(yù)設(shè)是ISO-8859-1,為了支援繁體中文檔名,程式中設(shè)定為MS950,如果要支援簡體中文檔名,可以設(shè)定為GB2312。

          基本上您只要建立MultipartRequest物件就完成了檔案上傳的處理動作,如果要額外取得檔案資訊,您可以從 MultipartRequest物件取得,例如getFileNames()、getContentType()、getFile()等等, getFileNames()所取得的是Enumeration型態(tài)之物件,可以這么使用:
          Enumeration filenames = multi.getFileNames();
          while(filenames.hasMoreElements()) {
              String filename = (String) filenames.nextElement();
               out.println("上傳了檔案" + filename + "<br>");
          }
           
          其它有關(guān)于MultipartRequest的說明,您可以參考下載的zip檔中之a(chǎn)pi說明。

          posted on 2008-06-20 11:23 doodoosun 閱讀(188) 評論(0)  編輯  收藏 所屬分類: Java 相關(guān)

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類(6)

          隨筆檔案(11)

          文章分類(30)

          文章檔案(34)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 图们市| 浮梁县| 丰台区| 庐江县| 专栏| 南华县| 连江县| 武城县| 大足县| 壶关县| 泉州市| 百色市| 开平市| 巴塘县| 丹巴县| 天峨县| 奉贤区| 厦门市| 冀州市| 疏附县| 沐川县| 蓬莱市| 延庆县| 舞阳县| 阿拉善盟| 奇台县| 色达县| 昔阳县| 贵港市| 炎陵县| 杂多县| 稷山县| 新乡市| 新兴县| 永济市| 樟树市| 花垣县| 西平县| 田东县| 潮州市| 嵩明县|