3

如何使用 file.type.match 将 mimetype 限制为仅 png 和 jpg

下面是我的代码

var fileInput = document.getElementById("myfileinput").files[0];

if (fileInput.type.match('image/jpeg'))  
      //I not thinking to use if(xx || xx)
      //prefer using var mimeType = jpg,png  many tries but not work
{
alert("Right");
}else{
alert("wrong");
}
4

3 回答 3

7

从你的问题听起来你不想做这样的事情:

if (fileInput.type.match('image/jpeg') || fileInput.type.match('image/png'))  
  //I not thinking to use if(xx || xx)
  //prefer using var mimeType = jpg,png  many tries but not work
{
  alert("Right");
}else{
  alert("wrong");
}

您可以制作一系列可接受的扩展并遍历它们,例如:

var fileInput = document.getElementById("myfileinput").files[0];
var allowed = ["jpeg", "png"];
var found = false;

allowed.forEach(function(extension) {
  if (fileInput.type.match('image/'+extension)) {
    found = true;
  }
})

if(found) {
  alert("Right");
}
else{
  alert("wrong");
}

请参阅此小提琴进行测试。

于 2013-01-15T21:28:52.510 回答
0

|也可以使用OR 运算符在一行中完成:

if (fileInput.type.match('image/jpeg|image/png')) {...}

于 2019-04-09T21:48:16.830 回答
0

使用attr-accept(或复制其代码)使您的 mime 类型验证更具前瞻性和可在其他上下文中重用。

于 2021-10-19T01:02:00.057 回答