0

我正在使用 python/Django 上传文件并获取两个不同的对象。当文件较小时,获取InMemoryUploadedFile对象,而文件很大时,我进入temporaryFileWrapper. magic我正在使用库检查文件 mime 类型。

mime type当文件很大时,使用此代码正确

file_name = self.cleaned_data.get('file')
file_mime= magic.from_file(file_name.file.name, mime=True)

supported_format= ['video/x-flv','video/mp4','video/3gpp','video/x-ms-wmv']
 if file_mime  in supported_format:
    ...........

但是当文件很小时,我会出错

_io.BytesIO' object has no attribute 'name

对于大文件

在此处输入图像描述

对于小文件

在此处输入图像描述

4

1 回答 1

0

根据 Django 的这个文档,Django 有两个上传文件处理程序 MemoryFileUploadHandlerTemporaryFileUploadHandler. MemoryFileUploadHandler流到内存, TemporaryFileUploadHandler流到磁盘。

我已将我设为TemporaryFileUploadHandler默认setting.py

FILE_UPLOAD_HANDLERS= ["django.core.files.uploadhandler.TemporaryFileUploadHandler"]

我们也可以FileUploadHandler在 django 中编写自己的自定义

于 2018-08-20T06:37:09.277 回答