Я создаю интерфейсный сервер реагирования и бэкэнд-сервер django.
Я перенес файл изображения из фронтэнда реагирования в бэкэнд Django, используя axios.
Однако содержимое файла изображенияв фоновой папке мультимедиа не видно.
Итак, я сравнил размер исходного файла перед передачей и размер переданного файла в папке мультимедиа.
Размер оригиналаразмер файла был 687 687, а размер передаваемого файла был немного увеличен до 68 7 870.
Однако вместо передачи с сервера с внешним интерфейсом
www.localhost: 8000 / admin
Я подключился к администратору серверного сервера django и загрузил файл, и было подтверждено, что он загружен нормально.
Я думаю, что в реакциях axios имеются некоторые фиктивные данные в процессе передачи файлов.
- ответный код внешнего интерфейса.
export function uploadFile(file) {
let url = `${ROOT_URL}/upload/${file.name}`;
const formData = new FormData();
formData.append('file', file)
const config = { headers: { 'Content-Type': 'multipart/form-data' } };
return (dispatch) => {
axios.post(url, formData).then(response => {
dispatch({
type: UPLOAD_FILE,
payload: response
})
})
код базы данных остальной части django
class File(models.Model):
file = models.FileField(blank=False, null=False)
def __str__(self):
return self.file.name
class FileSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = ("__all__")
class FileUploadView(CreateAPIView):
parser_classes = (FileUploadParser, )
def post(self, request, filename, format=None):
file_serializer = FileSerializer(data=request.data)
file_obj = request.data['file']
print(file_obj.size)
if file_serializer.is_valid():
file_serializer.save()
return Response(file_serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Я хочу знать, почему объем файла увеличился и почему он поврежден.Справка.
=====================================================
Изображение, Сравните шестнадцатеричные данные двух файлов
Загрузите изображение, сравнивая шестнадцатеричные значения обоих файлов
Шестнадцатеричные данные перед переданным файлом.
content-disposition: form-data;name = "" ..........
Кажется, что это данные, которые передаются.Не PNG-файл.
То же самое происходило при передаче файлов на почтальон, а также на реагирование.
Я думаю, что мне нужно изменить код в бэкэнде django.Пожалуйста, помогите мне.