1. 程式人生 > >multipart/form-data檔案上傳

multipart/form-data檔案上傳

form表單的enctype屬性:規定了form表單資料在傳送到伺服器時候的編碼方式

  • application/x-www-form-urlencoded:預設編碼方式
  • multipart/form-data:指定傳輸資料為二進位制資料,例如圖片、mp3、檔案
  • text/plain:純文字的傳輸。空格轉換為“+”,但不支援特殊字元編碼。

多部件請求體

POST / HTTP/1.1
Host: localhost
cache-control: no-cache
Postman-Token: aa6340a3-4e9b-448c-be76-e6de91258d81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

Content-Disposition: form-data; name="file"; filename="/Users/zhuyx/Documents/test.png



Content-Disposition: form-data; name="token"

text
------WebKitFormBoundary7MA4YWxkTrZu0gW--
--------------------- 
  • 多部件請求體:就是把每一個表單項分隔為一個部件。
  • 表單項分為普通表單項和檔案表單項
  • multipart/form-data型別的body為多部請求體

postman body支援型別

1、form-data

  • http請求中的multipart/form-data,會將表單的資料處理為一條訊息,以標籤為單元,用分隔符分開。
  • 既可以上傳鍵值對,也可以上傳檔案
  • 當上傳的欄位是檔案,會使用content-type表明檔案型別;content-disposition說明欄位的一些資訊。
  • 由於有boundary隔離,所以multipart/form-data既可以上傳檔案,也可以上傳鍵值對。

2、application/x-www-from-urlencoded

  • 會將表單內的資料轉換為鍵值對。

3、raw

  • 可以上傳任意格式的文字,可以上傳text、json、xml、html等

4、binary/application/octet-stream

  • 只可以上傳二進位制資料,通常用來上傳檔案,一次只能上傳一個檔案。

5、multipart/form-data與application/x-www-from-urlencoded區別

  • multipart/form-data:既可以上傳二進位制資料,也可以上傳表單鍵值對,只是最後會轉化為一條資訊
  • x-www-from-urlencoded:只能上傳鍵值對,並且鍵值對都是間隔分開的。