我正在构建一个react前端服务器和一个django后端服务器。
我使用axios将图像文件从react前端传输到Django后端。
但是,后端媒体文件夹中的图像文件内容不可见。
因此,我比较了传输前原始文件的大小和媒体文件夹中传输的文件的大小。
原始文件的大小为687 687个,转移的文件的大小略有增加,增至687 870个。
然而,与其从react前端服务器进行传输,
www.localhost:8000/admin
我连接到django后端服务器管理并上传了该文件,并确认它正常上传。
我认为react在传输文件的过程中似乎有一些虚拟数据。
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
})
})- models.py
class File(models.Model):
file = models.FileField(blank=False, null=False)
def __str__(self):
return self.file.nameclass 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)我想知道为什么文件的容量增加了,为什么文件被破坏了。帮助。
================================================
上传图片,比较这两个文件的十六进制值
传输文件前面的十六进制数据。
内容-处置:表格-数据;name=“.
这似乎是传输的数据。不是PNG文件。
在将文件传递给邮递员以及响应公理时,也会发生同样的情况。
我认为我需要修改django后端中的代码。请帮帮我。
发布于 2019-04-22 06:00:32
parser_classes = (FileUploadParser, )我在views.py上删除了这段代码,它可以工作。
================================================
和。我试过很多种方法。
from django import forms
from .models import File
class FileForm(forms.ModelForm):
class Meta:
model = File
fields = ('file', )创建FileForm。
def fileUpload(request):
form = FileForm(request.POST, request.FILES)
form.save()它也能用。
这一次,这似乎是一个机会,可以详细阅读DRF的django文档。
我希望这篇文章能有所帮助。对于像我这样的新开发人员
https://stackoverflow.com/questions/55785675
复制相似问题