js 如何判断图片的真实格式
时间: 2023-06-07 20:03:07 浏览: 56
在使用JavaScript判断图片的真实格式时,需要借助于一些已经封装好的工具库。其中,常用的工具库是FileReader对象。
首先,通过FileReader的readAsDataURL方法读取图片文件,并用String的substr()方法截取图片文件的前缀部分。图片文件前缀包含了图片的MIME类型和编码方式等信息。
例如:
```js
function checkImageFormat(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
var result = reader.result;
var dataPrefix = result.substr(0,20);
if(dataPrefix.indexOf("jpeg") !== -1) {
console.log("This image is a JPEG format.");
} else if(dataPrefix.indexOf("png") !== -1) {
console.log("This image is a PNG format.");
} else if(dataPrefix.indexOf("gif") !== -1) {
console.log("This image is a GIF format.");
} else {
console.log("The format of the image is not supported.");
}
};
}
```
上述代码中,使用了String的indexOf()方法来检测图片文件前缀是否包含JPEG、PNG、GIF等格式标识。当检测到格式标识时,可以输出相应的提示信息。
需要注意的是,该方法仅能判断图片的后缀名是否正确,而不能完全保证图片是真实的格式。对于一些恶意用户可能篡改图片的后缀名,或者在图片数据中插入其他格式的内容的情况,该方法无法完全避免。如果需要更严谨的图片格式判断,可以考虑使用第三方工具包如exif-js等。