在Django中使用ImageField上传前验证图片的高度、宽度和文件类型
我很快会让我的朋友通过我这个小Django项目的管理界面上传图片。我希望他遵循两个规则:
- 图片必须是2000 x 1200像素
- 图片必须是PNG格式的文件
我现在的模型是这样的:
class MapLayout(models.Model):
name = models.CharField(max_length=255)
description = models.TextField(max_length=255)
slug = models.SlugField(max_length=255)
def upload_details(instance, filename):
path = "maps/" # Upload location
format = instance.slug + '.png' # Filename
return os.path.join(path, format)
image = models.ImageField(upload_to=upload_details)
def __str__(self):
return self.name
供参考,我正在使用Django 1.6和Python 3.4
我该如何在上传之前检查图片的高度、宽度和文件类型呢?
1 个回答
1
你可以使用像Pillow这样的库来实现这个功能:
from PIL import Image
image=Image.open(filepath)
image.size # (width,height) tuple
image.format # (keeps the image format)
你可以在官方文档中找到更多信息: