从Android应用程序中保存Django中的图片时出现问题。我搜索并最终解决了这个问题。我正在分享这一点,以便它可能有所帮助。请参阅下面的答案。
答案 0 :(得分:2)
您必须根据自己的规格实施。我只是向您展示一个通用的例子
我在我的Android应用中使用okHttp在网络上发送数据(包括图片)
Android AsyncTask代码(doInBackground方法)
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("filename","filename",RequestBody.create(MediaType.parse("multipart/form-data"), new File(file.getPath())))
//.addFormDataPart("other_field", "other_field_value")
.build();
Request request = new Request.Builder()
.header("Authorization", "Token " + myToken)
.url(myUrl).post(formBody).build();
Response response = new OkHttpClient().newCall(request).execute();
return response.body().string();
我的view.py代码
def rechargeapplication(request):
user=#get your own object
uploadpic = request.FILES['filename']
user.picture.save("image.jpg",uploadpic)
user.save()
return JsonResponse({'result':'Success'})
我是如何在models.py
中创建imageField的picture=models.ImageField(upload_to="photos" , null=True, blank=True)
如果您使用的是ImageField,那么您必须安装" Pillow" 还要确保指定MEDIA_ROOT& settings.py中的MEDIA_URL ....我告诉你我是怎么做的
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
并在urls.py的末尾添加此内容(因为我处于调试模式,这就是为什么我的实现...)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)