【发布时间】:2014-03-23 18:47:27
【问题描述】:
我一直在用这个 curl 命令发布一个文件:
curl -i -F file=@./File.xlsm -F name=file -X POST http://example.com/new_file/
现在我想随文件一起发送一些关于文件的信息(以 JSON 格式)。
curl -i -H "Content-Type: application/json" -d '{"metadata": {"comment": "Submitting a new data set.", "current": false }, "sheet": 1, "row": 7 }' -F file=@./File.xlsm -F name=file http://example.com/new_file/
Curl 对以这种完全错误的方式使用非常不满,在这种情况下,它说“你只能选择一个 HTTP 请求!”好的,很公平,那么如何将文件附件和那些 POST 变量放入单个 curl HTTP 请求中?
【问题讨论】:
-
听起来 curl 已经告诉了你答案......你的 HTTP 请求的内容类型是 json,而不是 multipart/form-data——它不能包含文件 AFAIK。如果您要发送有关文件的元数据,则可能应作为 HTTP 请求标头发送。
-
愿意接受这个作为答案,但你不能在 cmets 上这样做。
标签: json post file-upload curl curl-commandline