3

file.type.match を使用して、png と jpg のみの MIME タイプを制限するにはどうすればよいですか

以下は私のコードです

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

attr-accept (またはそのコードをコピー) を使用して、MIME タイプの検証をより将来性のあるものにし、他のコンテキストで再利用できるようにします。

于 2021-10-19T01:02:00.057 に答える