是否有使用“multipart / form-data”中的“multipart / mixed”上传文件的Web浏览器?

时间:2014-04-25 02:17:33

标签: html forms internet-explorer google-chrome firefox

根据HTML specs

  

如果使用表单提交文件的内容,则应通过适当的内容类型(例如,“application / octet-stream”)来标识文件输入。如果要作为单个表单条目的结果返回多个文件,则应将它们作为“multipart / mixed”嵌入“multipart / form-data”中返回。

我尝试了一个带有<input type="file" name="files" multiple>的简单HTML表单,但是当在Chrome或Firefox中选择多个文件时,序列化表单只是每个文件都有一个常规的MIME部分,而没有“multipart / mixed”部分。

是否有网络浏览器使用“multipart / form-data”中的“multipart / mixed”上传文件,或者这部分规范是否从未在实践中实现?

更新1:我测试了以下浏览器:

  • Chrome 34
  • Firefox 28
  • Safari 7.0.3
  • IE 11
  • Opera 20

更新2:我也尝试使用curl curl -i -F secret=42 -F files=@foo.jpg -F files=@bar.jpg http://localhost:8080/,但它的行为与浏览器相同。

1 个答案:

答案 0 :(得分:0)

我需要知道同样的事情,所以只为遇到此事的其他人。

根据whatwg standard,表格使用multipart/form-data should be encoded using RFC 7578

  

使用RFC 7578,从表单返回值:multipart / form-data 中描述的规则对(现在已变异的)表单数据集进行编码,并返回结果字节流。

查看RFC 7578我们找到this

  

<强> 4.3。一个表单字段的多个文件

     

表单字段的表单数据可能包含多个文件。

     

RFC2388建议单个表单字段的多个文件   使用嵌套的&#34; multipart / mixed&#34;部分。这种用法是   弃用。

     

要匹配广泛部署的实现,必须发送多个文件   通过在单独的部分中提供每个文件但都具有相同的部分   &#34;名称&#34;参数。

     

接收旨在广泛适用的应用程序(例如,   multipart / form-data解析库)应该也支持旧版本   提供多个文件的方法。