使用Curl发送带有一些数据的POST请求,包括文件

时间:2014-07-25 00:38:13

标签: file post curl

如何在我的工作目录的curl请求中包含文件?

下面我有一个POST请求,其中包含“first_name”和“last_name”的数据,但现在我需要在文件的输入中添加。那里的例子有人只是发送文件,但我正在尝试发送一个或多个文件,以及其他数据。

curl 
  -H "Content-Type: application/json" 
  -d '{ first_name: "Donny", last_name: "P", my_file: ???? }'
  https://sender.blockspring.com/api/blocks/319bfef4aad7f3477745048a2da3ae6a?api_key=2e0ef0c216078d60630d1321e67b243a

1 个答案:

答案 0 :(得分:1)

这只能通过多部分完成。

手动构建multipart可能很复杂,因此curl有一个内置的-F选项。

curl localhost:8000 -F "my_file=@file.ext" -F "name=daniel;last=P" -v

来自男人卷曲

  

-F, - 表格                 (HTTP)这使curl模拟用户按下提交按钮的填写表单。这导致curl POST                 根据RFC 2388使用Content-Type multipart / form-data的数据。这样可以上传二进制文件等。   至                 迫使内容' part为文件,文件名前缀为@符号。要从文件中获取内容部分,                 使用符号<前缀文件名。 @和<之间的区别然后是@使文件附加在                 作为文件上传发布,而<创建一个文本字段,然后从文件中获取该文本字段的内容。