2016-09-23 2 views
1

내 API에 POST 데이터를 보내려고합니다."POSTMAN을 사용하여 이미지 데이터 게시"

image = models.ImageField() 

내가 보내려고하고 내 로컬 상자에 이미지가 : 나는 image 필드 모델을 가지고있다. 나는 그것을 정확하게 보내고 있는가?

{ 
    "id": "3", 
    "uid":"273a0d69", 
    "uuid": "90", 
    "image": "@/home/user/Downloads/tt.jpeg" 
} 

답변

10

우편 배달부에 보내는 방법과 다릅니다. 당신이 한 일은 당신의 이미지의 길인 문자열을 보내는 것입니다.

해야 할 일은 다음과 같습니다.

  1. 요청 방법을 POST로 설정 한 후 '본문'탭을 클릭하십시오.
  2. 양식 데이터 선택. 첫 번째 줄에는 key 및 value라는 텍스트 상자가 표시됩니다. 키에 '이미지'를 씁니다. 기본적으로 '텍스트'로 설정된 값 유형이 표시됩니다. 그것을 파일로 만들고 파일을 업로드하십시오.
  3. 그런 다음 '원시'를 선택하고 json 파일을 붙여 넣습니다. 또한 이진 선택 옆에 '텍스트'가 클릭 된 것을 볼 수 있습니다. 그것을 JSON으로 만드십시오.

    raw section

    form-data section

당신은 갈 준비가 된 것입니다. 장고보기에서

,

당신이 form-data 패널에 키/값 쌍으로 JSON을 설정하면 허용 대답 작동
from rest_framework.views import APIView 
from rest_framework.parsers import MultiPartParser 
from rest_framework.decorators import parser_classes 

@parser_classes((MultiPartParser,)) 
class UploadFileAndJson(APIView): 

    def post(self, request, format=None): 
     thumbnail = request.FILES["file"] 
     info = json.loads(request.data['info']) 
     ... 
     return HttpResponse() 
+0

안녕하세요. 중첩 된 이미지를 처리하는 방법이 있습니다. 예 : {model : {image : file}} – Babbz77

+0

요청이 "지원되지 않는 미디어 유형 \"application/json \ " 415 HTTP 상태 코드. 어떤 생각? – MarAja

+0

우편 배달부에서 테스트 해 보시겠습니까? –

1

enter image description here

(이하 이미지 참조) 그럼에도 불구하고 API를 설계하는 것이 매우 깨끗한 지 궁금합니다. 이미지와 JSON을 한 번 호출로 업로드해야하는 경우에는 괜찮습니다. 그러나 이미지를 업로드하는 경로와 다른 콘텐츠 형식 헤더가있는 JSON 본문을 구분할 수 있다면 좋을 것 같습니다. .

관련 문제