2013-12-17 28 views
0

我正在用C++写一个webserver。我对W3看POST文档:是否有任何浏览器发送multipart/form-data子部分?

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4

我看到一个POST应该支持完整的多份方案:零件和子部件(显然,子子部分。 ..)就像电子邮件附件一样。

是否有任何浏览器和/或工具在正常情况下执行此操作?换句话说,服务器支持部件和子部件真的很重要吗?

这个问题的一个明显问题是,它可能意味着两个文件以相同的名称上传。如果你问我,这是一个很大的问题。另外,从我在PHP中可以看到的情况来看,它在该领域根本不受支持。我对么?

回答

1

啊!我想我应该多搜索一下,并告诉你我没有想过看HTML5的答案。

以下段落实际上包括了答案:

http://www.w3.org/html/wg/drafts/html/master/forms.html#multipart-form-data

注:具体而言,这意味着多个文件提交作为单个元素的 部分将 结果在每个文件有它自己的领域;不使用RFC 2388的“ 文件集”功能(“multipart/mixed”)。

因此很明显,子部分(multipart/mixed)不被支持。

+0

CURL默认使用multipart发送文件,我相信。如果你运行curl的命令行版本来发布多个文件,你可以看到一个例子。 http://curl.haxx.se/docs/httpscripting.html第4.3节。有方法可以在每个部分被命名的地方格式化请求。我以前做过这个,但我认为它更多是MIME的一个特性。 –

+0

我测试过了,并且无法产生任何错误(即没有任何HTTP数据包含子部分)。我使用了4.3节中提到的--form选项。我尝试了两个具有相同名称的文件和两个具有相同字段名称的文件,我只是收到了两个单独的文件。 –

相关问题