需要使用Curl上传JSON和图像文件

时间:2014-12-16 12:03:14

标签: json django curl http-post django-rest-framework

我有一个Django REST API,其中包含一个带有logo标记的模型,它是一个文件(ImageField)。 curl命令应该如何看待这种方式。我试过这种方式,但它从来没有对我有用:

curl -vX POST http://127.0.0.1:8000/client/ -d test.json --header "Conten-Type: application/json" -F "logo=@Downloads/trello.png"

1 个答案:

答案 0 :(得分:2)

不幸的是,JSON不支持上传二进制文件,目前仅限于多部分请求。如果您不需要发送嵌套数据,并且您没有锁定JSON,我建议您使用它。

解决方法是创建一个用于上传文件的新视图,与需要JSON的视图分开。它不会在所有情况下都能工作,并且需要两个步骤,但它也会隔离您的问题。

另一个选项是创建(或查找)支持JSON上传的自定义字段,通常使用base64编码的字符串。