Javascript 如何验证只接受(任何)图像类型文件的表单?

Javascript 如何验证只接受(任何)图像类型文件的表单?,javascript,jsp,validation,Javascript,Jsp,Validation,在这里,我有demo.jsp页面,我上传了这张图片,我已经为jpg、png和gif编写了javascript验证代码,但是如果图片类型不是这样,我们无法在条件下为每种类型编写,那么有没有其他方法可以做到这一点 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ImageResizing</title&

在这里,我有demo.jsp页面,我上传了这张图片,我已经为jpg、png和gif编写了javascript验证代码,但是如果图片类型不是这样,我们无法在条件下为每种类型编写,那么有没有其他方法可以做到这一点

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ImageResizing</title>
    <script>
        function  vlidate() {
            var fileName = document.getElementById("Imgfile").value;
            var file_extension = fileName.split('.').pop();
            var newWidth = document.getElementById("newWidth").value;
            var newHeight = document.getElementById("newHeight").value;
            //alert(fileName);
            //alert(file_extension);                
            if (file_extension !== "jpg" || file_extension !== "png" || file_extension !== "gif") {
                alert("Choose Valid image");
            }
            else if ((file_extension == "jpg" || file_extension == "png" || file_extension == "gif") && (newWidth.length != "" && newHeight.length != "")) {
                //alert("Go ahead");
                document.getElementById("uploadImgForm").submit();
            }
        }
    </script>
</head>
<body bgcolor="#ABD3EB">
    <%
        out.println("<form method='post' action='FileUploadServlet' enctype='multipart/form-data' id='uploadImgForm' name='uploadImgForm'>");
        out.println("<h2>Image Resizing</h2>");
        out.println("<table>");
        out.println("<tr><td><input type='file' id='Imgfile' name='Imgfile'></td></tr>");
        out.println("<tr><td></td></tr>");
        out.println("<tr><td>New Width:</td><td><input type='text'  id='newWidth' name='newWidth'</td></tr>");
        out.println("<tr><td>New Height:</td><td><input type='text' id='newHeight' name='newHeight'</td></tr>");
        out.println("<tr><td></td></tr>");
        out.println("<tr><td><input type='button' value='Upload Image' onclick='vlidate()' ></td></tr>");
        //out.println("<tr><td><input type='submit' value='Upload Image' ></td></tr>");
        out.println("</table>");
        out.println("</form>");
    %>
</body>

在输入标记中可以有一个accept属性

<input type="file" name="imagefilename" accept="image/x-png, image/gif, image/jpeg" />

<input type="file" accept="image/*">
第一个适用于chrome,而第二个适用于chrome和FF

参考这个

要创建允许多文件支持的文件输入框,只需执行以下操作

<input type="file" multiple="multiple" name="File1" id="File1" accept="image/*" />

如果图像不是png、gif、jpeg,那么?在jsp中,我可以用js写什么?请你修改我的代码,我有点困惑如果我们写了accept=image/*那么在js中它只会检查jpg、png、gif,否则它会显示上传正确的图像吗?如果我上传了bmp格式,它会显示错误吗?如果你给accpet=image/*,它甚至会接受bmp格式的图像。看一看图像可用的MIME类型,以及这一点,您将有一个明确的答案idea@pradnyapalan,不要通过编辑回答问题。图像文件的验证远远超出了验证扩展名的范围。