我想用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
?
答案 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