multipart/form-data请求与文件上传的细节

要上传文件,需要用post方法,并且设置enctype为multipart/form-data。

复制代码
<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="text" name="param1">
  <input type="text" name="param2">
  <input type="file" name="fileparam">
  <button type="submit">上传</button>
</form>
复制代码

 

关于multipart/form-data

multipart/form-data与post方法结合,用了multipart/form-data的post请求与普通的post请求的请求头和请求体都有不同。

 

普通post请求头中Content-Type字段值为:

Content-Type: application/x-www-form-urlencoded

multipart/form-data请求头中Content-Type字段值为multipart/form-data; boundary=xxxxxxx, (xxxxxx规定了请求体中的内容分隔符)。

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryZpsWTsOiRHI0TBW7

 

普通post请求的请求体格式为(不会上传文件内容):

param1=AAAA&param2=123456&fileparam=test.txt

而multipart/form-data请求体格式为(包含文件内容):

复制代码
------WebKitFormBoundaryjUVXJ3PslTEBh9as
Content-Disposition: form-data; name="param1"

AAAA
------WebKitFormBoundaryjUVXJ3PslTEBh9as
Content-Disposition: form-data; name="param2"

123456
------WebKitFormBoundaryjUVXJ3PslTEBh9as
Content-Disposition: form-data; name="fileparam"; filename="test.txt"
Content-Type: text/plain

contents of file
------WebKitFormBoundaryjUVXJ3PslTEBh9as
复制代码

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值