经常需要用户上传图片,怎么判断用户上传的文件是正确的图片而不是修改后缀的文件呢?用PIL,imghdr还是其他呢?
import Image try: im=Image.open(filename) # do stuff except IOError: # filename not an image file
适应大部分常见图片,但xcf, svg或psd就不能处理
如果检查到是下面表格内的格式,就返回相对应的值,否则返回是空。
import imghdr imghdr.what('pythonxyz.gif') # 输出 # 'gif'
源码见 imghdr.py
Value | Image format |
---|---|
'rgb' | SGI ImgLib Files |
'gif' | GIF 87a and 89a Files |
'pbm' | Portable Bitmap Files |
'pgm' | Portable Graymap Files |
'ppm' | Portable Pixmap Files |
'tiff' | TIFF Files |
'rast' | Sun Raster Files |
'xbm' | X Bitmap Files |
'jpeg' | JPEG data in JFIF or Exif formats |
'bmp' | BMP files |
'png' | Portable Network Graphics |
python-magic 是 libmagic 库的 Python 语言封装,实现魔术棒的文件类型识别。
安装
# pip pip install python-magic # On OSX brew install libmagic
示例代码:
>>> import magic >>> magic.from_file("testdata/test.pdf") 'PDF document, version 1.2' >>> magic.from_buffer(open("testdata/test.pdf").read(1024)) 'PDF document, version 1.2' >>> magic.from_file("testdata/test.pdf", mime=True) 'application/pdf'
Github地址 python-magic
stat -c "%a %n" file , 755, 644
ModuleNotFoundError: No module named 'MySQLdb', ...
Ubuntu18.04下使用pyenv安装python报错:BUILD FAILED (Ubun ...
dell提供了工具远程查看服务器硬件状态,可以修改硬件的参数,可以远程连接过去直接修改,就不需要 ...
启动报undefined symbol: EVP_CIPHER_CTX_cleanup错误。op ...
ubuntu开启crontab日志记录及解决No MTA installed, discardi ...
暂时还没有评论,第一个来评论吧!