FileField:强制使用 TemporaryUploadedFile

mim*_*imo 6 django django-file-upload

为诸如此类的字段上传文件时:

file = FileField(upload_to='/path/')
Run Code Online (Sandbox Code Playgroud)

Django 使用 anInMemoryUploadedFileTemporaryUploadedFile. 后者存储在磁盘上,可以通过temporary_file_path属性访问其文件名。存储选择取决于文件大小。

如何覆盖此行为并始终作为TemporaryUploadedFile此模型字段的a 上传?

我问这个的原因是因为我需要编写一个使用外部库的验证器,该库只能将文件路径作为输入,没有数据流。

ohr*_*rom 9

默认情况下,上传处理程序是:

[
    'django.core.files.uploadhandler.MemoryFileUploadHandler',
    'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]
Run Code Online (Sandbox Code Playgroud)

小于 2.5MB 的文件使用MemoryFileUploadHandler.

所以只需在您的设置中说:

FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.TemporaryFileUploadHandler',]
Run Code Online (Sandbox Code Playgroud)

  • 我只需要在特定字段上进行调整。这可以仅应用于我的“文件”字段吗? (6认同)