안녕하세요 처음으로 질문글을 남겨보네요.^^; 현재 공모전의 서버를 django rest

 
JunHo Kim

안녕하세요
처음으로 질문글을 남겨보네요.^^;

현재 공모전의 서버를 django rest framework으로 구현 중에 있습니다.
Rest로 JSON 형태로 정보를 주고 받는 것은 튜토리얼과 간단한 코딩만으로도 잘 되는거 같은데,,

이미지 파일 전송을 rest_framework으로 구현을 하려고 하니 공식 사이트에는 FileUploadParser를 이용하라고만 하고 다른 언급은 없네요..

혹시 Ajax 와 django rest frame work을 이용해서 이미지파일(혹은 파일)업로드에 관련된 참조할 만한 링크가 있으면 댓글 부탁드립니다.^^

  • Jae Lee

    파일은 application/json로 보내지 못합니다. multipart/formdata 형식 사용해야해요.

    Bohyun Jung

    음… 예전에 html5 캔버스 이미지 자체를 바이너리 코딩을 해서 get/post 데이터로 요청을 해 본적이 있는데요, 이걸 쫌만 workaround하시면 json 안에도 넣을 수 있을 것 같아요. 물론 서버사이드에서 디코드해서 저장해야겠지만요 ㅋㅋ

    Sebum Lee

    Base64로 변환해서 json에 넣을수는 있지만 비추합니다

    JunHo Kim

    흠.. 그냥 form에 multipart로 ajax로 보내시는걸 추천하시는군요…

    Bohyun Jung

    http://permadi.com/blog/2010/10/html5-saving-canvas-image-data-using-php-and-ajax/
    이 링크를 참고해보세요. PHP 기반이지만 분명 이를 위한 모듈이 파이썬에도 있을거에요

    박정수

    multipart/form으로 보내도 결국은 base64로 인코딩해서 보내는 것이기 때문에 json에 넣을 수는 있을 것 같습니다.

    파일 업로드하는 api를 호출할 때 파일 업로드 외에 다른 정보도 같이 보내실 생각이신가요? 이미지 파일이 얼마나 클지 모르겠지만 업로드에 실패하는 경우도 있을테고, retry를 해야할 수도 있을 것입니다. 그런 경우에는 파일 실패때문에 다른 파라메터들도 같이 실패하겠죠. 그래서 제 생각에는 파일 전송 api는 파일 전송만을 하고, 파일 핸들같은 것을 줘서 다른 api에서 사용하도록 하는 것이 좋을 것 같고, 그렇다면 파일 전송만을 하는 api에 대해서 꼭 json 형태로 보낼 필요가 없을 것 같습니다.

Advertisements