Java--Servlet MultipartRequest實現上傳文件

      網友投稿 1349 2022-05-30

      MultipartReques類主要是對文件上傳進行的處理,在上傳文件時,編碼格式為enctype="multipart/form-data"格式,以二進制形式提交數據,提交方式為post方式。

      html示例代碼

      upload.html

      用戶名:

      密碼:



      Java示例代碼

      package test;

      import java.io.File;

      import java.io.IOException;

      import java.util.Enumeration;

      import javax.servlet.ServletException;

      import javax.servlet.http.HttpServlet;

      import javax.servlet.http.HttpServletRequest;

      import javax.servlet.http.HttpServletResponse;

      import com.oreilly.servlet.MultipartRequest;

      @SuppressWarnings("serial")

      public class TestServlet extends HttpServlet {

      @Override

      public void service(HttpServletRequest request, HttpServletResponse response)

      throws ServletException, IOException {

      MultipartRequest mr=null;

      //用來限制用戶上傳文件大小的

      int maxPostSize = 1 * 100 * 1024 * 1024;

      //第一個參數為傳過來的請求HttpServletRequest,

      //第二個參數為上傳文件要存儲在服務器端的目錄名稱

      //第三個參數是用來限制用戶上傳文件大小

      //第四個參數可以設定用何種編碼方式來上傳文件名稱,可以解決中文問題

      mr = new MultipartRequest(request, "E:\zhang", maxPostSize, "GBK");

      //傳回所有文件輸入類型的名稱

      Enumeration files = mr.getFileNames();

      String fileName = "";

      String filePath="";

      while (files.hasMoreElements()) {

      fileName = (String) files.nextElement();

      System.out.println("FileName============"+fileName);

      //用此方法得到上傳文件的真正的文件名,這里的fileName指文件輸入類型的名稱

      Java--Servlet MultipartRequest實現上傳文件

      filePath = mr.getFilesystemName(fileName);

      System.out.println("FilePath============"+filePath);

      //此方法得到一個文件對象,代表儲存在服務器上的fileName文件

      File f = mr.getFile(fileName);

      if (null == f)

      throw new ServletException("file is not exist");

      }

      //可以取得請求參數的名稱

      Enumeration enum1=mr.getParameterNames();

      while (enum1.hasMoreElements()) {

      String s=(String)enum1.nextElement();

      System.out.println(s);

      String[] str=mr.getParameterValues(s);

      for (int i=0;i

      System.out.println(str[i]);

      }

      }

      }

      }

      運行后結果

      16:36:16,346 INFO? [STDOUT] FileName============File2

      16:36:16,346 INFO? [STDOUT] FilePath============新建 文本文檔.txt

      16:36:16,346 INFO? [STDOUT] FileName============File1

      16:36:16,346 INFO? [STDOUT] FilePath============test.txt

      16:36:16,346 INFO? [STDOUT] password

      16:36:16,346 INFO? [STDOUT] zhy

      16:36:16,346 INFO? [STDOUT] userName

      16:36:16,346 INFO? [STDOUT] zhang

      若出現異常如下,則是maxPostSize 設置太小,文件太大

      exception :

      java.io.IOException: Posted content length of 785 exceeds limit of 1

      com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:172)

      com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)

      com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:173)

      test.TestServlet.service(TestServlet.java:22)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

      若出現異常如下,則提交方式應該為post提交,或編碼形式為enctype="multipart/form-data"

      exception:

      java.io.IOException: Posted content type isn't multipart/form-data

      com.oreilly.servlet.multipart.MultipartParser.(MultipartParser.java:166)

      com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:222)

      com.oreilly.servlet.MultipartRequest.(MultipartRequest.java:173)

      test.TestServlet.service(TestServlet.java:26)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

      關于此類的API詳看

      http://www.servlets.com/cos/javadoc/com/oreilly/servlet/MultipartRequest.html

      Java Servlet

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:無須搭建環境,只需十分鐘使用Google Colab平臺,基于YOLOv4和Darknet來實現的物體檢測
      下一篇:基于vite2+electron13+elementPlus跨端仿mac osx桌面管理
      相關文章
      亚洲精品国产高清在线观看| 亚洲一久久久久久久久| 国产成人亚洲综合无| 亚洲人成色99999在线观看| 亚洲天堂一区二区三区四区| 亚洲黄色一级毛片| 91亚洲精品视频| 亚洲精品无码久久久久久久| 亚洲综合综合在线| 亚洲第一页在线视频| 亚洲毛片免费观看| 亚洲毛片免费观看| 亚洲中字慕日产2020| 久久亚洲最大成人网4438| 亚洲jizzjizz在线播放久| 亚洲一区二区三区亚瑟| 亚洲一区二区三区在线观看蜜桃| 亚洲妓女综合网99| 99亚偷拍自图区亚洲| 亚洲AV一区二区三区四区| 无码色偷偷亚洲国内自拍| 深夜国产福利99亚洲视频| 亚洲 自拍 另类小说综合图区| 国产精品亚洲专区无码不卡| 国产亚洲精品成人久久网站| 亚洲成a人片在线观看老师| 精品亚洲一区二区三区在线观看| 亚洲午夜久久久久久久久电影网| 亚洲av一综合av一区| 亚洲日本中文字幕区| 91亚洲视频在线观看| 中文字幕亚洲情99在线| 亚洲a∨无码精品色午夜| 亚洲精品视频在线观看你懂的| 国产自偷亚洲精品页65页| 国产亚洲精品国产| 亚洲蜜芽在线精品一区| 亚洲高清一区二区三区| 国产偷国产偷亚洲高清在线| 亚洲综合无码精品一区二区三区| 亚洲av永久无码精品漫画|