使用PyMuPDF处理Django表单上传的PDF文件时遭遇FileNotFoundError问题求助
使用PyMuPDF处理Django表单上传的PDF文件时遭遇FileNotFoundError问题求助
各位好,我在Django项目里用ModelViewSet接收上传的PDF文件,打算用PyMuPDF(也就是fitz库)来解析处理它,但遇到了一个奇怪的错误,折腾半天没解决,来求助大家。
先贴一下我的相关代码:
模型与序列化器代码
class Drawing(models.Model): drawing = models.FileField(upload_to='uploads/') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class DrawingSerializer(ModelSerializer): drawing = serializers.FileField() class Meta: model = m.Drawing fields = ('id','drawing')
视图集代码
import fitz from rest_framework import viewsets from rest_framework.response import Response import m # 模型模块导入 import s # 序列化器模块导入 class DrawingViewSet(viewsets.ModelViewSet): queryset = m.Drawing.objects.all() serializer_class = s.DrawingSerializer def list(self, request): serializer = s.DrawingSerializer(queryset, many=True) return Response(serializer.data) def create(self, request, *args, **kwargs): # 文件通过表单字段'drawing'上传 print(request.FILES) # 控制台输出: <MultiValueDict: {'drawing': [<InMemoryUploadedFile: mypdf.pdf>]}> print(request.FILES['drawing']) # 控制台输出: mypdf.pdf # 尝试用PyMuPDF打开文件时出错 doc = fitz.open(request.FILES['drawing']) # 后续的文件处理逻辑...
遇到的错误
当我上传PDF文件后,后台抛出了这个错误:
fitz.fitz.FileNotFoundError: no such file: 'mypdf.pdf'
我能看到request.FILES里确实存在这个上传的文件,但PyMuPDF就是提示找不到文件,有没有大佬能指点下问题出在哪,该怎么解决?
备注:内容来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

