我已应用代码检查图像扩展名是否与图像内容真正匹配。 我检查了原始图像的前两个值,然后将其与[0xFF,0xD8]匹配,以确定它是点动图像还是jpeg图像。
使用jpg图片..可以正常使用,但不能使用JPEG格式。 维基百科为jpeg和jpg提供了这两种初始编码。 但是对于jpeg,我收到了[137,80]
$scope.checkContentOfImage=function(file){
var deferred =$q.defer();
var reader = new FileReader();
reader.onloadend = function (e) {
var arr = (new Uint8Array(e.target.result)).subarray(0, 4);
let flag=true;
let pattern=[0xFF, 0xD8];
for(let i=0 ; i< 2; i++){
if(arr[i]!=pattern[i]){
flag=false;
break;
}}
if(flag){
deferred.resolve("success");
}
else{
deferred.reject("not image file");
}
}
reader.onerror=function(){
deferred.reject("failuer in checking content");
}
reader.readAsArrayBuffer(file);
return deferred.promise;
}
如何检查jpeg编码格式?对于jpg来说效果很好