You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:14:10