2017-01-04 6 views
1

У меня возникла проблема при сохранении картинки в Django из приложения для Android. Я искал и, наконец, решил проблему. Я разделяю это так, чтобы это могло помочь. См. Ответ ниже.Сохранить изображение в Django из Android-приложения

+0

это вроде вас, чтобы добавить свое решение, спасибо. Однако вышеизложенное не является вопросом в соответствии с рекомендациями переполнения стека. Могли бы вы переписать выше, чтобы задать вопрос? Это довольно сложно сделать, так как он должен содержать проблему, которая была у вас до обнаружения решения. Однако, пожалуйста, попробуйте, поэтому мы можем избежать его удержания. – halfer

ответ

1

Вам придется выполнять действия в соответствии с вашими собственными спецификациями. Я просто покажу вам, как общий пример

я использовал 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(); 

Мой взгляд .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'}) 

Как я создал Imagefield в models.py

picture=models.ImageField(upload_to="photos" , null=True, blank=True) 

если вы используете ImageField, то вам придется установить «Подушка» Кроме того, убедитесь, что вы указываете MEDIA_ROOT & MEDIA_URL в settings.py .... Я покажу вам, как я сделал это

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) 
Смежные вопросы