2017-01-17 47 views
3

我在其中一个模型中有一个ImageField,以便用户可以上传图像。当用户提交上传表单时,我想验证相关文件是完全有效且可显示的图像。如何检查上传的文件是否是Django中的有效图像

我尝试使用PIL来验证图像实际上真实的,但使用

from PIL import Image 
Image.open(model.file) 
Image.verify() 

无论我给它虽然什么文件,它总是会抛出异常。

任何人都知道一个简单的方法来验证文件?

回答

3

好消息,你不必这样做:

类的ImageField(upload_to =无,height_field =无,width_field =无,MAX_LENGTH = 100,**选项)

继承来自FileField的所有属性和方法,但也验证上传的对象是有效的图像。

https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ImageField

+0

这是正确的,但它似乎并不全部由自己做到这一点。它要求你在forms.py中设置表单,以便进行验证。 –

+0

您是否通过处理原始发布数据来处理上传? – e4c5

+0

是的。我试图在我设置的视图方法中处理这一切。我使用表单系统以及is_valid()方法进行设置,并像魅力一样工作。 –

1

此外,你应该使用验证()如下:

from PIL import Image 
im = Image.open(model.file) 
im.verify() 
相关问题