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

时间:2014-07-02 22:10:27

标签: 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;
  }
}

如果类型为 image / jpeg ,则会执行$scope.all_files_images = false;,但不应该执行此操作。适用于png。我检查了类型,一切看起来都很好。

2 个答案:

答案 0 :(得分:1)

你的逻辑被打破了。你的代码说,“如果它不是PNG,那么它不是JPG那么......”

如果它是一个,它仍然会失败,因为它不是另一个。换句话说,如果一个.png文件,那么,当然,这意味着它不是一个.jpg文件,因此测试认为这是一个错误。< / p>

||更改为&&。然后就会,“如果它不是PNG而且它不是JPG那么......”,这是正确的。

答案 1 :(得分:1)

你正在传递一个字符串,例如'image/png'方法的match()。不幸的是,match()不期望一个字符串,它期望一个RegExp对象......像这样:

match(/gif|png|jpg|jpeg/);