2014-08-27 67 views
0

我很快就會讓朋友通過我的小Django項目的管理界面上傳圖像。我想他遵循兩個規則:在使用Django中的ImageField上傳之前驗證圖像的高度,寬度和文件類型

  • 圖片必須是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 

作爲參考,我使用Python 3.4運行Django 1.6

如何驗證圖像高度,上傳之前的寬度和文件類型?

+0

_「確認圖像的高度,寬度和文件類型* *在**上傳之前* _如果您真的想在下載之前完成此操作,則必須查找客戶端技術。這不會讓你檢查服務器端,因爲你不能信任客戶端。 – 2014-08-27 15:09:31

回答

1

您可以使用庫像枕頭可以這樣做:

from PIL import Image 

image=Image.open(filepath) 
image.size # (width,height) tuple 
image.format # (keeps the image format) 

您可以在官方文檔的詳細信息:

http://pillow.readthedocs.org/en/latest/

相關問題