首页 > 解决方案 > 如何检查 python InMemoryUploadedFile 文件的文件类型?

问题描述

我正在使用 python Django 创建一个应用程序来合并文档,我想检查上传文件的文件类型,因为代码只能合并 pdf 文件。我曾尝试使用 endwith 和 split 函数来检查文件类型,但出现错误说 InMemoryUploadedFile 没有这样的属性。因此,是否有任何其他方法来检查 InMemoryUploadedFile 文件的文件类型?我的代码如下所示:我想确保检查上传的文件是否不是 pdf 文件,代码将忽略它(添加 if 语句并继续)

def mergedocument(request):

    doc = request.FILES.getlist("file[]")

    mergedoc =[]

   for docu in doc:
      fs = FileSystemStorage()
      file_path = fs.save(docu.name, docu)
      pdoc = documentsfile(docs=file_path)
      pdoc.save()

     mergedoc.append(docu)

  merger = PdfFileMerger()

  for pdf in mergedoc:
      merger.append(pdf)

  merger.write("C:\\Users\\Downloads\\Merged.pdf")
  merger.close()
  messages.info(request,a)

  messages.info(request,'Files merged and stored in your Downloads folder')

  return redirect('home')

标签: pythondjangofile-type

解决方案


尽管这个问题可以追溯到很久以前,但您可以在这篇文章中利用 Pithikos 解决方案:Django - 获取上传的文件类型/mimetype,并检查 if 语句中返回的文本中是否有“pdf”。


推荐阅读