Как отправить изображение в Django с помощью Flutter web?

Я работаю над проектом, который использует Flutter web в качестве клиента и Django в качестве бэкенд-сервера. В настоящее время я работаю над формой регистрации, которая требует отправки изображения + дополнительных данных.

Моя проблема в том, что кажется, что есть проблема с загрузкой файла, мое представление работает правильно в Django (я тестировал его много раз) и когда я удаляю поле файла с сервера django, запрос работает отлично, поэтому я предполагаю, что проблема в загрузке файла.

final reader = html.FileReader();
      reader.readAsArrayBuffer(logo);
      await reader.onLoad.first;
      final imageData = reader.result as List<int>;
      final request = http.MultipartRequest("POST", url);
      final multipartFile =
          http.MultipartFile.fromBytes('logo', imageData, filename: 'Any_name');
      request.files.add(multipartFile);
      request.fields["nom"] = nom;
      request.fields["secteur_activite"] = secteurActivite;
      request.fields["description"] = description;
      request.fields["email"] = email;
      request.fields["first_name"] = firstname;
      request.fields["last_name"] = lastname;
      request.fields["phone"] = phone;
      request.fields["password"] = password;
      request.fields["password2"] = password2;

      final response = await request.send();

Я уже работал с файлами между Django и Flutter, и у меня всегда были проблемы с использованием метода .fromBytes, метод .fromPath работает нормально, но этот метод недоступен для Flutter web.

Вот мой код Django:

class EntrepriseRegistrationView(GenericAPIView):
    serializer_class = EntrepriseSerializer
    parser_classes = (MultiPartParser,)

    def post(self, request):
        request.data
        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid(raise_exception=True):
            serializer.save()
            data = serializer.data
            print(data)
            print(data.get("access_token"))
            return Response({
                "data": data,
                'message': "Votre inscription s'est effectué avec succès",
            },status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Вернуться на верх