2

我想用 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

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

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

找不到“@/home/ubuntu/Downloads/test.zip”的处理程序

更新

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

4

1 回答 1

2

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

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
于 2015-09-04T17:33:17.227 回答