如何使用curl使用回形针上传文件?

时间:2013-04-19 21:24:29

标签: ruby-on-rails api curl

我想用curl

上传一个文件和一些信息(例如package_type)

在我的submission模型中:

has_attached_file :package

我尝试了什么:

curl -d "submission[package_type]=type1&submission[package]=@/home/ubuntu/Downloads/test.zip" http://localhost:3000/restapi.json

如果我遗漏文件对象,它可以工作(一个条目将被插入到数据库中)

但是我指定了上面的文件,它给了我一个错误:

No handler found for "@/home/ubuntu/Downloads/test.zip"

更新

我刚刚发现我应该在curl中使用-F选项,但是在这种情况下无法记录文件信息,无论如何都包含文件对象和文件信息?也许像curl -d -F

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,最后将内容类型设置为multipart / form-data,而不是在发布到我的REST API时处理base64编码问题。这是一个包含auth标题的示例:

curl -v -H 'Content-Type: multipart/form-data' -H "X-User-Email: <email>" -H "X-User-Token: <token>" -X POST -i -F submission[package_type]=type1 -F submission[image_attributes][image]=@f117.jpg http://localhost:3000/api/v1/submissions