RT,Java
语言如何判断用户上传的文件是否是图片,网上搜索了一下,提供了两种思路:
第一是校验文件后缀(很弱);
第二是获取图片的宽度和高度,说是能获取到宽高基本上就可以认定是图片了,问下这两种方式组合使用是否就可以确定一个文件是否是图片???
判断MIME类型。
图片类型
图片类型是在网页中使用的,唯一被广泛识别以及考虑过web安全的类型:
MIME 类型 图片类型 image/gif GIF 图片 (无损耗压缩方面被PNG所替代) image/jpeg JPEG 图片 image/png PNG 图片 image/svg+xml SVG图片 (矢量图)
此处的类型划分有一定的争议,有人认为此处应该增加 WebP (image/webp)
,但是每个新增的图片类型都会增加代码的数量,这会带来一些新的安全问题,所以浏览器供应商对于添加类型非常小心。另外的一些图片种类可以在Web文档中找到。比如很多浏览器支持 icon 类型的图标作为
favicons或者类似的图标,并且浏览器在MIME类型中的 image/x-icon 支持ICO图像。