アップロードする前にPythonマジックを使用してファイルを検証しているため、以下のリンクをたどっています。
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 この python マジック ロジックを使用して pdf ファイルをアップロードできますが、画像 tiff ファイルのアップロードを許可し、ファイル サイズを 25 MB に制限したいと考えています。
Pythonマジックを使用してこれを実装するにはどうすればよいですか?