def clean(self, value, *args, **kwargs):
value = super().clean(value, *args, **kwargs)
if isinstance(value, UploadedFile):
try:
from PIL import Image
except ImportError:
return value
value.open('rb')
value.seek(0)
try:
with Image.open(value) as im, tempfile.NamedTemporaryFile('rb', suffix='.png') as tmpfile:
im.save(tmpfile.name)
tmpfile.seek(0)
return SimpleUploadedFile('picture.png', tmpfile.read(), 'image png')
except IOError:
logger.exception('Could not convert image to PNG.')
raise ValidationError(
_('The file you uploaded could not be converted to PNG format.')
)
return value
评论列表
文章目录