Я использую питона магию, чтобы проверить файл перед загрузкой так за что я следую ниже ссылке:Validate файл перед загрузкой с помощью питона волшебной
https://djangosnippets.org/snippets/3039/
validators.py файл:
from django.core.exceptions import ValidationError
import magic
class MimetypeValidator(object):
def __init__(self, mimetypes):
self.mimetypes = mimetypes
def __call__(self, value):
try:
mime_byt = magic.from_buffer(value.read(1024), mime=True)
mime = mime_byt.decode(encoding='UTF-8')
if mime not in self.mimetypes:
raise ValidationError('%s is not an acceptable file type' % value)
except AttributeError as e:
raise ValidationError('This value could not be validated for file type' % value)
вот мой form.py файл:
class FileForm(forms.ModelForm):
file = forms.FileField(
label='Select a File *',
allow_empty_file=False,
validators=[MimetypeValidator('application/pdf')],
help_text='Max. Size - 25 MB')
class Meta:
model = File
fields = ('file')
SO Я могу загрузить файл в формате PDF с этим питоном волшебной логикой, но я также хочу, т o разрешить загрузку файла изображения tiff и ограничить размер файла до 25 МБ.
Как я могу реализовать это с помощью магии питона?
Спасибо. Я также хочу разрешить файл tiff изображения, так что вы знаете, как его добавить? –
Точно так же, как вы проверяете PDF-файл ... Вы знаете, как сделать этот бит уже. – Ben
Я имею в виду, что я хочу разрешить только файл pdf и tiff при загрузке файла. –