Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript文件类型检查不适用于jpeg,但适用于png_Javascript - Fatal编程技术网

javascript文件类型检查不适用于jpeg,但适用于png

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

在上传到我的服务器之前,我会检查文件类型,但文件类型检查仅适用于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<$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文件不起作用,如上面的代码:)它会将字符串转换为正则表达式。