2013-12-17 69 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選項。我嘗試了兩個具有相同名稱的文件和兩個具有相同字段名稱的文件,我只是收到了兩個單獨的文件。 –

相關問題