2017-01-17 49 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() 
相關問題