使用javascript验证图像类型

时间:2010-01-10 05:03:47

标签: javascript

我有一个这样的表格:

<form method=post src=upload enctype="multipart/form-data">
    <input name="img1" id="img1" type="file">
    <input type="submit" value="Upload">
</form >

请问如何使用javascript验证此表单,以便只上传jpg文件。谢谢你的阅读。

8 个答案:

答案 0 :(得分:11)

您可以绑定表单的onsubmit事件,并检查文件输入的value是否以“.jpg”或“.jpeg”结尾,如下所示:

window.onload = function () {
  var form = document.getElementById('uploadForm'),
      imageInput = document.getElementById('img1');

  form.onsubmit = function () {
    var isValid = /\.jpe?g$/i.test(imageInput.value);
    if (!isValid) {
      alert('Only jpg files allowed!');
    }

    return isValid;
  };
};

检查上面的示例here

答案 1 :(得分:5)

表格: -

<form method=post src=upload enctype="multipart/form-data" onsubmit="return validateFile()">
<input name="img1" id="img1" type="file">
<input type="submit" value="Upload">
</form>

Javascript代码: -

        function validateFile() 
        {
            var allowedExtension = ['jpeg', 'jpg'];
            var fileExtension = document.getElementById('img1').value.split('.').pop().toLowerCase();
            var isValidFile = false;

                for(var index in allowedExtension) {

                    if(fileExtension === allowedExtension[index]) {
                        isValidFile = true; 
                        break;
                    }
                }

                if(!isValidFile) {
                    alert('Allowed Extensions are : *.' + allowedExtension.join(', *.'));
                }

                return isValidFile;
        }

如果您想添加更多图片扩展名,请添加allowedExtension数组;

var allowedExtension = ['jpeg', 'jpg', 'png', 'gif', 'bmp'];

答案 2 :(得分:2)

这是一种更简单,更可靠的验证图像的方法,您不必考虑所有可能的图像扩展。

DATEADD(DAY, DATEDIFF(DAY, 0, <mydate>), 0)

如果您要严格使用jpg

document.body.querySelector('input[type="file"]')
        .addEventListener('change', function () {
            if (this.files[0] && this.files[0].type.includes('image')) {
                console.log('file is an image');
            } else {
                console.log('file is not an image');
            }
        });

答案 3 :(得分:1)

您可以对输入标记使用“accept”参数:

<input name="img1" id="img1" type="file" accept="image" />

它不是JavaScript,但仍然有助于防止用户甚至尝试上传非图像文件。

答案 4 :(得分:1)

图像扩展数组

let allowedExtension = ['image/jpeg', 'image/jpg', 'image/png','image/gif','image/bmp'];

获取图片类型

//----<input type="file" id='userimage' accept="image/*" name='userimage'>-----

let type = document.getElementById('userimage').files[0].type;

检查类型已包含在允许的扩展数组中:)

if(allowedExtension.indexOf(type)>-1)
 {
      alert('ok')
 }else{
      alert('Not a image')
      }
 }

答案 5 :(得分:0)

Google搜索出土了这个:http://www.webdeveloper.com/forum/archive/index.php/t-104406.html

对于您的应用程序,我建议您通过以下方式运行输入:

function valid(a){
    return a.indexOf(".jpg") != -1 && a.type == file;
}

这应该有效。

答案 6 :(得分:0)

71944有一些javascript看起来可能会做你需要的。请记住,它只是客户端验证,因此您仍然希望在服务器上验证它。

答案 7 :(得分:0)

&#13;
&#13;
<script>
var fileInput = document.getElementById("fileInput");
fileInput.addEventListener("change",function(event){
    document.getElementById("name").innerHTML = "NAME: " + event.target.files[0].name;
    document.getElementById("type").innerHTML = "TYPE: " + event.target.files[0].type;
    document.getElementById("size").innerHTML = "SIZE: " + event.target.files[0].size;
});
</script>
&#13;
<input type="file" id="fileInput" name="file"/>
&#13;
&#13;
&#13;