javascript文件类型检查不适用于jpeg,但适用于png
在上传到我的服务器之前,我会检查文件类型,但文件类型检查仅适用于png和现在的jpeg:javascript文件类型检查不适用于jpeg,但适用于png,javascript,Javascript,在上传到我的服务器之前,我会检查文件类型,但文件类型检查仅适用于png和现在的jpeg: for(var j = 0; j < $files.length; j++) { if(!$files[j].type.match('image/png') || !$files[j].type.match('image/jpeg')) { $scope.all_files_images = false; } } for(var j=0;j
for(var j = 0; j < $files.length; j++) {
if(!$files[j].type.match('image/png') || !$files[j].type.match('image/jpeg')) {
$scope.all_files_images = false;
}
}
for(var j=0;j<$files.length;j++){
if(!$files[j].type.match('image/png')| |!$files[j].type.match('image/jpeg')){
$scope.all_files_images=false;
}
}
当类型为image/jpeg时,
$scope.all\u files\u images=false代码>已执行,不应执行。适用于png。我检查了类型,看起来一切正常。您的逻辑被破坏了。您的代码会说,“如果它不是PNG或JPG,那么…”
如果是其中一个,它仍然失败,因为它不是另一个。换句话说,如果它是一个.png文件,那么,当然,这意味着它不是一个.jpg文件,所以测试认为它是一个错误
将|
更改为&&
。然后它将是“如果不是PNG,也不是JPG,那么…”,这是正确的。您正在向匹配()
方法传递一个字符串,例如'image/PNG'
。不幸的是,match()
不需要字符串,它需要一个RegExp
对象。。。像这样:
match(/gif | png | jpg | jpeg/)代码>您是否尝试过使用新的html5文件api?您可能会看到类似的线程是否有帮助:我打赌在您添加.jpg测试后,它对.png文件不起作用,如上面的代码:)它会将字符串转换为正则表达式。