根据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:我测试了以下浏览器:
更新2:我也尝试使用curl curl -i -F secret=42 -F files=@foo.jpg -F files=@bar.jpg http://localhost:8080/
,但它的行为与浏览器相同。
答案 0 :(得分:0)
我需要知道同样的事情,所以只为遇到此事的其他人。
根据whatwg standard,表格使用multipart/form-data
should be encoded using RFC 7578:
使用RFC 7578,从表单返回值:multipart / form-data 中描述的规则对(现在已变异的)表单数据集进行编码,并返回结果字节流。
<强> 4.3。一个表单字段的多个文件
表单字段的表单数据可能包含多个文件。
RFC2388建议单个表单字段的多个文件 使用嵌套的&#34; multipart / mixed&#34;部分。这种用法是 弃用。
要匹配广泛部署的实现,必须发送多个文件 通过在单独的部分中提供每个文件但都具有相同的部分 &#34;名称&#34;参数。
接收旨在广泛适用的应用程序(例如, multipart / form-data解析库)应该也支持旧版本 提供多个文件的方法。