>source

React Native앱이 있는데 로고(이미지)를 업로드하는 화면이 있습니다. . 로고가 업로드되면 Django가 이미지를 수신하고 사용자 행에 저장하고 파일을 로컬 자산 폴더에 생성해야 합니다(평소처럼). 문제는 내가 React Native에서 올바른 방식으로 데이터를 보내고 있는지조차 모르겠지만 Django REST API가 이미지를 Python 사전. 다른 많은 사람들의 지침을 따르고 있지만 여전히 작동하지 않습니다. React Native FormData인스턴스에 로고를 로드하는 방법은 다음과 같습니다.

const fd= new FormData();
fd.append('logo', {
  name: logo.fileName,
  uri: logo.uri,
  type: logo.type,
});

logo변수는 라이브러리의 인스턴스입니다.

여기서 Django가 을 사용하여 데이터를 수신하는 방법 pdb(Python 디버거):

더 나은 모습을 위해:

{'_parts': [
  ['logo', {
    'name': 'logo.png',
    'uri': 'file:///data/user/0/com.micandidato/cache/rn_image_picker_lib_temp_9b3907e0-3f13-4ad5-9ca9-13f491473440.png',
    'type': 'image/png'
  }]
]}

Django가 이 객체를 이미지로 저장하지 않을 것이라고 확신합니다. React Native의 요청 방법은 PATCH입니다(해당되는 경우). 감사 해요.

  • 답변 # 1

    FormData 인스턴스에 데이터(예: 이미지)를 추가하려면 다음과 같은 인수를 전달해야 합니다.

    #프론트엔드에서

    const fd= new FormData();
    fd.append('image',imageFileOrBlob,FileName*);
    //rest of the code
    

    FileName은 선택적 인수입니다.

    귀하의 경우 imageFileOrBlob은 다음과 같이 전달되어야 합니다.yourInputField.target.files[0]

    참조

    #Django 백엔드에서

    def myView(request):
      logo= request.FILES.get('image')
      #rest of the code
    

    REACT NATIVE FormData 클래스는 브라우저와 동일하지 않습니다.

    gianlop3z2022-02-05 08:45:12
  • 이전 Eclipse가 내 마인크래프트 모드를 제대로 가져오지 않음
  • 다음 열 이름이 있는 t-test 출력을 R의 데이터 프레임에 저장하는 방법은 무엇입니까?