24

关于 cURL 的使用,我有一个简单的问题。在我的 Google 搜索或手册页中没有找到太多明确的答案。

这里讨论在发送文件/附件时使用任一--datavs。--form我很想知道主要区别是什么以及在什么情况下您会选择--data-binaryVS --form

POST“正文”可以通过--data (for application/x-www-form-urlencoded)或发送--form (for multipart/form-data)

-F "foo=bar"                  # 'foo' value is 'bar'
-F "foo=<foovalue.txt"        # the specified file is sent as plain text input
-F "foo=@foovalue.txt"        # the specified file is sent as an attachment

-d "foo=bar"
-d "foo=<foovalue.txt"
-d "foo=@foovalue.txt"
-d "@entirebody.txt"          # the specified file is used as the POST body

--data-binary "@binarybody.jpg"
4

2 回答 2

11

不同之处在Forms 的 HTML 4.01 Specification 部分中进行了解释:

application/x-www-form-urlencoded 是默认的内容类型。

内容类型“application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。

于 2014-11-12T19:25:56.247 回答
3

这正是主要区别,发送到服务器的数据类型(application/x-www-form-urlencodedvs multipart/form-data

于 2012-12-28T01:12:07.063 回答