2017-01-04 50 views
1

我在從Android應用程序中將圖片保存在Django中時遇到了問題。我搜索並最終解決了這個問題。我分享這個,這樣可能會有所幫助。請參閱下面的答案。從Android應用程序保存在Django中的圖像

+0

這是一種您可以添加您的解決方案,謝謝。但是,根據堆棧溢出指導原則,上述內容不是問題。你能重寫上面的問題嗎?這很難做到,因爲它需要包含您在查找解決方案之前遇到的問題。但是,請儘量嘗試,以免被擱置。 – halfer

回答

1

您將不得不根據自己的規格來實施。我只是顯示你作爲一個普通的例子

我在我的Android應用程序中使用okHttp和網絡上發送數據(包括PIC)

的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(); 

我的看法的.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,那麼你將要安裝的「枕頭」 還要確保您指定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) 
相關問題