如何使用 react 和 django rest 发送文件



如何将图像文件从 react 发送到 django。

我是 react 和 django的新手,目前我成功地从端点发送和获取数据,现在我想将图像文件或任何其他文件从 react 发送到 django 或从 django 获取图像文件来反应。我写了一些代码,但它无法正常工作,并且我很难发送文件,我进行了研究,但没有得到任何有用的链接。请有人分享链接,从那里我可以更好地了解它是如何工作的。以下是我的尝试:

反应部分

let doc=new JsPDF();
doc.addImage(img,'JPEG',30,30);
//doc.save('test.pdf');
let formdata=new FormData();
formdata.append('file',doc);
fetch(`http://127.0.0.1:8000/chauffeur/pdf_upload/`,
{
method: 'POST',
body:formdata,
}
).then(response => response.json()).catch(error => console.error('Error:', error));

丹戈部分

class PdfUpload(APIView):
parser_classes = (MultiPartParser, FormParser,)
def get(self, request):
return Response([PdfSerializer(file).data for file in Pdf.objects.all()])
def post(self,request):
payload=(request.data,request.FILES)
print("Hello")
print(payload)
serializer=PdfSerializer(data=payload)
if serializer.is_valid():
serializer.save()
return Response("File Saved in Backend",status=status.HTTP_201_CREATED)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

但是我从上面的代码中得到了太多错误,比如没有提交文件或预期的字典,但接收列表,有人可以修复上面的代码或可以分享有用的链接,我可以更好地理解。提前感谢!

如果你 models.py 中的对象名称是例如PdfModel,可以这样写:

from django.core.files import File
def post(self, request):
my_file = File(request.data.get('file'))
new_pdf_file = PdfModel.objects.create(
field1=request.data.get('field1'),
field2=request.data.get('field2'), 
field3=my_file )
new_pdf_file.save()
return Response({"something","something")

最新更新