Python 在Django中使用ImageField上载之前,请验证图像高度、宽度和文件类型
我将很快让一个朋友通过我的小Django项目的管理界面上传图像。我希望他遵守两条规则:Python 在Django中使用ImageField上载之前,请验证图像高度、宽度和文件类型,python,django,django-models,Python,Django,Django Models,我将很快让一个朋友通过我的小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_leng
- 图像必须为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
作为参考,我使用Python3.4运行Django 1.6
如何在上传前验证图像的高度、宽度和文件类型?您可以使用诸如Pillow之类的库进行验证:
from PIL import Image
image=Image.open(filepath)
image.size # (width,height) tuple
image.format # (keeps the image format)
您可以在官方文档中找到更多信息:
“上传前验证图像高度、宽度和文件类型”如果您真的想在下载前验证图像高度、宽度和文件类型,您必须寻找客户端技术。但这并不能免除您检查服务器端,因为您不能信任客户端。