`

<input type = file/>上传图片限制大小、类型判断、像素判断

阅读更多

【前言】

   在项目中经常用到input标签来上传文件,而这些文件通常是图片文件。图片有很多格式我们只需要其中的几种,就需要对用户上传的文件进行验证,在HTML5中有一个新的属性:accept文件类型限制。但是通常我们会用javascript或jQuery编写方法进行验证图片的大小限制、类型判断、像素判断。

 

【主体】

<input type="file" name="files" id="file" onchange="verificationPicFile(this)">  

 

//图片类型验证  
function verificationPicFile(file) {  
    var fileTypes = [".jpg", ".png"];  
    var filePath = file.value;  
    //当括号里面的值为0、空字符、false 、null 、undefined的时候就相当于false  
    if(filePath){  
        var isNext = false;  
        var fileEnd = filePath.substring(filePath.indexOf("."));  
        for (var i = 0; i < fileTypes.length; i++) {  
            if (fileTypes[i] == fileEnd) {  
                isNext = true;  
                break;  
            }  
        }  
        if (!isNext){  
            alert('不接受此文件类型');  
            file.value = "";  
            return false;  
        }  
    }else {  
        return false;  
    }  
}  

 

//图片大小验证  
function verificationPicFile(file) {  
    var fileSize = 0;  
    var fileMaxSize = 1024;//1M  
    var filePath = file.value;  
    if(filePath){  
        fileSize =file.files[0].size;  
        var size = fileSize / 1024;  
        if (size > fileMaxSize) {  
            alert("文件大小不能大于1M!");  
            file.value = "";  
            return false;  
        }else if (size <= 0) {  
            alert("文件大小不能为0M!");  
            file.value = "";  
            return false;  
        }  
    }else{  
        return false;  
    }  
}  

 

//图片尺寸验证  
function verificationPicFile(file) {  
    var filePath = file.value;  
    if(filePath){  
        //读取图片数据  
        var filePic = file.files[0];  
        var reader = new FileReader();  
        reader.onload = function (e) {  
            var data = e.target.result;  
            //加载图片获取图片真实宽度和高度  
            var image = new Image();  
            image.onload=function(){  
                var width = image.width;  
                var height = image.height;  
                if (width == 720 | height == 1280){  
                    alert("文件尺寸符合!");  
                }else {  
                    alert("文件尺寸应为:720*1280!");  
                    file.value = "";  
                    return false;  
                }  
            };  
            image.src= data;  
        };  
        reader.readAsDataURL(filePic);  
    }else{  
        return false;  
    }  
}  

 

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    如何将input type=file显示的浏览变成英文的

    &lt;title&gt;File Upload Example&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form name="formen"&gt; &lt;!-- 隐藏的 input type="file" --&gt; &lt;input type="file" name="picpath" id="picpath" style="display:none" onChange="document....

    input type=file 显示的浏览 改成英文

    在网页设计中,`&lt;input type="file"&gt;` 是HTML元素的一个重要部分,它用于创建一个文件上传控件。默认情况下,这个控件的文本提示和按钮是根据用户的操作系统语言来显示的,例如,在中文环境下会显示“浏览”或“选择...

    html表单<form></form>

    &lt;input name="uid" type="text" value="" maxlength="20"/&gt; &lt;input name="pwd" type="password" value="" maxlength="10"/&gt; &lt;input name="gender" type="radio" value="f"/&gt;nan &lt;input name="gender" ...

    vue中使用input[type=”file”]实现文件上传功能

    注意:input[type=file] 标签中的属性accept=application/msword,application/pdf 在pc上正常,但是在手机ios和android上这个文件格式限制会被忽略,所以需要在js中增加格式的判断,以及对应显示样式的设置.(我也是刚...

    Android-解决在webview中input标签type="file"不能使用的问题

    然而,在实际使用中,我们可能会遇到一些问题,比如在WebView中使用`&lt;input type="file"&gt;`标签时,用户无法选择本地文件。这个现象主要是由于Android的安全机制和权限控制导致的。本文将详细讲解如何解决这个问题。 ...

    纯CSS实现可折叠树状菜单

    &lt;li class=file&gt;&lt;a&gt;下级&lt;/a&gt;&lt;/li&gt; &lt;li&gt; &lt;label for=subsubfolder2&gt;下级&lt;/label&gt; &lt;input id=subsubfolder2 type=checkbox /&gt; &lt;ol&gt; &lt;li class=file&gt;&lt;a&gt;无限级&lt;/a&gt;&lt;/li&gt; &lt;li class=file&gt;&lt;a&gt;无限级&lt;/a&gt;&lt;/li&gt; &lt;...

    HTML input type=file文件选择表单元素.docx

    HTML5 之前的 input type=file 元素只能一次上传一张图片,无法满足一次上传多图的交互需求。因此,许多场景下,使用 swfupload.js 来代替原生的 file input 表单元素。 二、HTML5 中的 input type=file 文件选择...

    MVC上传资料

    &lt;!DOCTYPE ... &lt;input type="file" name="file1" /&gt;&lt;br /&gt; &lt;input type="submit" value="文件上传" /&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

    html5+css3+javascript实现加减乘除功能

    在网页上实现加减乘除功能。... &lt;option value="/"&gt;/&lt;/option&gt; &lt;/select&gt; &lt;input type="number" id="n2"&gt; &lt;input type="button" onclick="aa()" value="="&gt; &lt;input type="text" id="res"&gt; &lt;/form&gt;

    手机信息系统之增加信息

    &lt;input type="text" name="type"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th&gt; 品牌: &lt;/th&gt; &lt;td&gt; &lt;input type="text" name="brand"&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; ...

    jsp登陆界面源代码

    name="userName" id="userName"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;密码:&lt;input type="password" name="password" id="password"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="submit" value="登录" style="background-color:pink"&gt; ...

    asp销售管理系统 源代码

    &lt;input type="text" name="name"&gt;&lt;font color="ff0000"&gt;*&lt;/font&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr bgcolor="#FFFFFF"&gt; &lt;td align="right"&gt;城市:&lt;/td&gt; &lt;td height="25"&gt;&nbsp;&lt;input type="text" name="city"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr ...

    JQuery选择器

    &lt;input type="checkbox" name="c"/&gt;1&lt;input type="checkbox" name="c"/&gt;2&lt;input type="checkbox" name="c"/&gt;3&lt;br/&gt; &lt;input type="file" /&gt;&lt;br/&gt; &lt;input type="hidden" /&gt;&lt;div style="display:none"&gt;test&lt;/div&gt;&lt;br...

    ssd1 quiz3答案

    &lt;html&gt; &lt;head&gt; &lt;title&gt;My webpage&lt;/title&gt; ... &lt;center&gt; Password:&lt;input type="password"&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt; &lt;center&gt;&lt;input type="submit" value="Done"&gt;&lt;/center&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

    input type=file 调取手机照相机和选择照片上传

    本文将深入探讨如何使用 `input type="file"` 激活手机的照相机功能以及选择图片上传。 首先,`&lt;input type="file"&gt;` 是HTML中的一个表单元素,它的主要作用是让用户选择本地文件。在默认情况下,点击这个元素会...

    jquery 24小时计时器,精确到秒!

    &lt;td&gt;&lt;span id="hour"&gt;00&lt;/span&gt;&lt;sub&gt;小时&lt;/sub&gt;&lt;/td&gt; &lt;td&gt;&lt;span id="mi"&gt;00&lt;/span&gt;&lt;sub&gt;分&lt;/sub&gt;&lt;/td&gt; &lt;td&gt;&lt;span id="s"&gt;00&lt;/span&gt;&lt;sub&gt;秒&lt;/sub&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;input type="button" value="开始(s)...

    ShippingLabelForm

    &lt;input type="text" name="ReceiverCityZip" /&gt; &lt;/label&gt; &lt;hr&gt; &lt;p&gt;shupping category&lt;/p&gt; &lt;p&gt; &lt;label&gt; &lt;input type="radio" name="destination" value="domestic-stamp.jpg" /&gt; Domestic&lt;/label&gt; &lt;/p&gt; &lt;p&gt;...

    学生信息管理系统

    &lt;td&gt;&lt;input type="text" name="id"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;姓名&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="name"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;性别&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="sex"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;...

    ASP寻物系统

    &lt;input name="xm" type="text" id="xm" /&gt;&lt;br /&gt;&lt;br /&gt; 联系方式: &lt;input name="lxfs" type="text" id="lxfs" /&gt;&lt;br /&gt;&lt;br /&gt; 备 注: &lt;input type="text" name="bz" /&gt;&lt;br /&gt;&lt;br /&gt; &lt;input type=...

    基于Struts+Hibenater

    &lt;td&gt;&lt;input type="text" name="username" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;密码:&lt;/td&gt; &lt;td&gt;&lt;input type="password" name="password" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;角 色:&lt;/td&gt; ...

Global site tag (gtag.js) - Google Analytics