1. 程式人生 > >servlet接收multipart/form-data表單資料

servlet接收multipart/form-data表單資料

表單的的提交方式有“application/x-www-form-urlencoded”和“multipart/form-data”兩種方式,預設的預設情況為“application/x-www-form-urlencoded”提交。

一般情況下使用“application/x-www-form-urlencoded”會比較快捷,然而,在向伺服器傳送大量的文字、包含非ASCII字元的文字或二進位制資料時這種編碼方式效率很低。特別在檔案上載時,所使用的編碼型別應當是“multipart/form-data”,它既可以傳送文字資料,也支援二進位制資料上載。所以,大資料傳輸時一般選擇“multipart/form-data”。

然而當使用“multipart/form-data”傳輸時,如果傳輸的資料有多個引數,那麼用request.getParameter()取到的值會是null。所以要用request.getInputStream()取值並解析。解析的部分網上提供多種封裝好的方法。下面為其中一種方法。

DiskFileItemFactory factory = new DiskFileItemFactory(); 
		ServletFileUpload upload = new ServletFileUpload(factory); 
		upload.setHeaderEncoding("UTF-8");
		List items = upload.parseRequest(request);
		Map param = new HashMap(); 
		for(Object object:items){
		    FileItem fileItem = (FileItem) object; 
		    if (fileItem.isFormField()) { 
		        param.put(fileItem.getFieldName(), fileItem.getString("utf-8"));//如果你頁面編碼是utf-8的 
		    }
		}

用該方法解析完之後可以直接用param.get()獲取你要的值,但是該方法要匯入commons-fileupload-1.3.jar和commons-io-1.2.jar。

此為jar包下載地址http://download.csdn.net/detail/han123456o/6769327

相關推薦

servlet接收multipart/form-data資料

表單的的提交方式有“application/x-www-form-urlencoded”和“multipart/form-data”兩種方式,預設的預設情況為“application/x-www-form-urlencoded”提交。 一般情況下使用“application

解決 ENCTYPE= "multipart/form-data "提交值獲取方案

表單經常上傳附件,會使用到ENCTYPE= "multipart/form-data "這句話的意思是處理表單的所有資訊以流方式提交,頁面上的所有資訊已經都轉換為了檔案流,為的是能讓服務端得到你上傳的檔案的檔案流。表單中enctype="multipart/form-data

python爬蟲實現multipart/form-data;提交

fields 引數 接收值: [(key,value),(k,v)] 此引數接收普通鍵值對資料,將鍵值對轉換為multipart/form-data格式 files 接收值: [

SpringMVC接收 multipart/form-data 傳輸的資料

spring上下文配置中加入如下配置,一定要注意,id為multipartResolver,不能是其他的。 <bean id="multipartResolver"

如何用SpringBoot框架來接收multipart/form-data文件

otf 判斷 ack 限制 pub dex *** multi 前臺 https://blog.csdn.net/linzhiqiang0316/article/details/77016997 ***************************************

Spring MVC獲取不到post提交的multipart/form-data格式的資料

我們在寫介面時,經常會用postman測試介面。前段時間我寫介面時,發現post的form-data提交資料,後端竟然接收不到請求引數,而使用post的x-www-form-urlencoded方式提交資料,後端可以接收到引數。為什麼? postman的form-data是指mult

如何用SpringBoot框架來接收multipart/form-data檔案

https://blog.csdn.net/linzhiqiang0316/article/details/77016997 *********************************************************** 今天遇到一個坑,這裡給大家介紹一下。 現在

multipartFile用來接收multipart/form-data請求傳過來的引數

什麼是multipart/form-data請求 根據http/1.1 rfc 2616的協議規定,我們的請求方式只有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE等,那為為何我們還會有multipart/form-data請求之說呢?這就要從頭來說了。 htt

後臺使用multipart/form-data方式提交資料

protected string CreateFormDateResponse(string url, Encoding encoding, IDictionary<string, string> textParams, IDictionary<strin

使用form-data上傳圖片

這是參考的大神的文章,連結忘了,這是很早的參考文章寫出來的。只需改動幾個地方,就OK public class FileImageUpload { private static final String TAG = “uploadFile”; pr

使用multipart form-data方式post資料到伺服器

使用multipart/form-data方式提交資料與普通的post方式有一定區別。multipart/form-data的請求頭必須包含一個特殊的頭資訊:Content-Type,其值必須為multipart/form-data。另外還需要規定一個內容分割符

JSP中表加了enctype="multipart/form-data"屬性後request就接收不到傳過來的值的問題

  1.get方式  get方式提交的話,表單項都儲存在http header中,格式是  http://localhost:8080/hello.do?name1=value1&name2=value2這樣的字串。JSP端通過request.getPara

multipart/form-data提交檔案資料獲取不瞭解決辦法

在學習Servlet檔案上傳方面遇到了一個問題,就是通過multipart/form-data這個表單型別提交要上傳的檔案的時候,Servlet用request.getParameter()方法獲取非檔案的資料時發現為空。 具體如下 jsp頁面 <body>

Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form提交的,程式碼如下:

Multipart/form-data POST檔案上傳詳解 理論 簡單的HTTP POST 大家通過HTTP向伺服器傳送POST請求提交資料,都是通過form表單提交的,程式碼如下: <form method="post"action="http://w.soh

form enctype:"multipart/form-data",method:"post" 提交,後臺獲取不到資料

在解決博問node.js接受引數的時候,發現當form中新增enctype:"multipart/form-data",後臺確實獲取不到資料,於是跑到百度上查了一下,終於明白為什麼了,下面轉載一下原因吧: 1.get方式  get方式提交的話,表單項都儲存在http h

HttpClient:模擬提交檔案,傳送multipart/form-data資料

使用HttpClient來模擬表單提交,傳送檔案 常用於非web客戶端與web後端傳輸檔案 1.pom <dependencies> <!-- https://m

HTML提交資料 application/x-www-form-urlencoded 和 multipart/form-data 區別

概述: 在 Form 元素的語法中,EncType 表明提交資料的格式。 用 Enctype 屬性指定將資料回發到伺服器時瀏覽器使用的編碼型別。  說明:  application/x-www-form-urlencoded:窗體資料被編碼為名稱/值對。這是標準的編

HTML提交資料中application/x-www-form-urlencoded和multipart/form-data的區別

在Form元素的語法中,EncType表明提交資料的格式 用 Enctype 屬性指定將資料回發到伺服器時瀏覽器使用的編碼型別。 下邊是說明: application/x-www-form-urlencoded : 窗體資料被編碼為名稱/值對。這是標準的編

flask獲取以enctype="multipart/form-data"格式傳送的資料

最早的HTTP POST是不支援檔案上傳的,給程式設計開發帶來很多問題。但是在1995年,ietf出臺了rfc1867,也就是《RFC 1867 -Form-based File Upload in HTML》,用以支援檔案上傳。所以Content-Type的型

HTTP form提交數據(enctype="multipart/form-data" method="post")的服務端處理

keyword -s detail put form表單 表單提交 class eth ron 參考鏈接:http://blog.csdn.net/u010018421/article/details/52833346 <form action="fileUpload