Extjs4 上传图片并进行图片格式以及大小验证
在做项目是遇到上传图片,并在前端限制图片上传的大小,下面就直接贴出主要的上传图片的代码,以及图片大小的验证,但前端没有验证图片的宽高验证
一、先创建出上传图片的组件,使用filefield组件
var upLoadBox = Ext.create('Ext.form.Panel', {
    height: 100,
    flex: 1,
    bodyPadding: 15,
    border: 0,
    items: [{
        xtype: 'filefield',
        name: 'photo',
        id:'id_fileField_photo',
        labelWidth: 50,
        msgTarget: 'side',
        allowBlank: false,
        anchor: '100%',
        maxLength: 200,
        border: 0,
        buttonText: '选择图片',
        Verification: "photo",
        validator: validateCustom,
        regex: null
    }],
    buttons: [{
        text: '上传',
        handler: function() {
            var form = this.up('form').getForm();
            //上传图片时传递的参数
            var reqParams = { };
            //验证from表单输入是否正确
            if (form.isValid()) {
                //验证图片大小
                if(me.IsValidateSize && validateImageSize()){
                    Ext.Msg.alert('提示','图片太大,请选择小于'+me.ImageMaxSize+'KB的图片文件!');
                    return ;
                }
                form.submit({
                    url: 'https://xxxxxx',  //在这里修改为你上传图片的路径
                    params: reqParams,    //这里修改为你上传图片时的参数
                    waitMsg: '正在上传...',
                    success: function(fp, o) {
                        //这里处理上传图片成功后的操作
                        var msg = o.response.responseText;
                        if (msg) {
                            Ext.Msg.alert("温馨提示", msg);
                            return;
                        }
                    },
                    failure: function(proxy, response) {
                        //这里处理上传图片失败的操作
                        response = response.response;
                        if (response.status == 0) {
                            Ext.Msg.alert("温馨提示", "网络超时,请重试");
                            return false;
                        }
                        var msg = response.responseText;
                        if (msg) {
                            Ext.Msg.alert("温馨提示", msg);
                        }
                    }
                });
            }
        }
    }]
});
//窗体
var win = new Ext.Window({
    title: '请您选择要上传的图片',
    name: "winupLoadId",
    width: 476,
    height: 142,
    resizable: false,
    modal: true,
    closable: true,
    items: [upLoadBox]
});
win.show();
//上传图片的输入框格式正则验证
var regexs["photo"] = /\.jpg$|\.jpeg$|\.png$/i; //图片格式
var regexsTexts["photo"] = '请选择格式为“png、jpg、jpeg”的图片';
function validateCustom(val) {
    if (val != "") {
        var fields = this.Verification;
        var items = fields.split('|');
        for (var i = 0; i < items.length; i++) {
            if (regexs[items[i]]) {
                if (!regexs[items[i]].test(val)) {
                    return regexsTexts[items[i]];
                }
            }
        }
    }
    return true;
}
//验证图片大小
function validateImageSize(){
//取控件DOM对象
var field = document.getElementById('id_fileField_photo');
//取控件中的input元素
var inputs = field.getElementsByTagName('input');
var fileInput = null;
var il = inputs.length;
//取出input 类型为file的元素
for(var i = 0; i < il; i ++){
if(inputs[i].type == 'file'){
fileInput = inputs[i];
break;
}
}
if(fileInput != null){
var fileSize = getFileSize(fileInput);
//允许上传不大于1M的文件
return fileSize > 1024;
}
return false;
}, //计算文件大小,返回文件大小值,单位K
function getFileSize(target) {
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
var fs = 0;
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile(filePath);
fs = file.Size;
} else if (target.files && target.files.length > 0) {
fs = target.files[0].size;
} else {
fs = 0;
}
if (fs > 0) {
fs = fs / 1024;
}
return fs;
} 验证图片的格式可以使用下面的方法
//验证图片文件的正则
var img_url_value = '';
var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/;
if(!img_reg.test(img_url_value)){
Ext.Msg.alert('提示','文件类型错误,请选择图片文件(jpe/jpeg/gif/png/bmp)');
}
Extjs4 上传图片并进行图片格式以及大小验证的更多相关文章
- JavaScript校验图片格式及大小
		
<!DOCTYPE html> <html> <head> <title>JavaScript校验图片格式及大小</title> <s ...
 - JS验证图片格式和大小并预览
		
用于上传图片的js验证: <%@ page language="java" contentType="text/html; charset=UTF-8"p ...
 - HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)
		
原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代 ...
 - C#验证是否是真的图片格式
		
做图片上传功能时,我们要限制用户上传的图片格式和大小. 但是,还有一种情况就是验证用户伪造的符合要求的图片,这种情况就必须要验证文件的真正格式. C#的办法时可以通过将文件读成二进制流,取前两个字节判 ...
 - 利用Struts拦截器限制上传图片的格式和大小
		
在这之前 Struts的一个核心功能就是大量的拦截器,既然是框架,那么自然也就贴心地为我们准备好了各种常用的功能,比如这里即将讨论的如何限制上传图片的格式和大小.那么既然是使用Struts已经写好的拦 ...
 - jquery实现上传图片及图片大小验证、图片预览效果代码
		
jquery实现上传图片及图片大小验证.图片预览效果代码 jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture() ...
 - js上传文件(图片)的格式和大小限制
		
如果你想快速解决这个问题,看本文就够了.查了好多资料,终于解决了,太耗时间了,本文留给给后来者,希望你们工作的更轻松 本文保存为.html文件用浏览器打开即可测试功能 <form id=&quo ...
 - 基于ASP.Net +easyUI框架上传图片,实现图片上传,提交表单
		
<body> <link href="../../Easyui/themes/easyui.css" rel="stylesheet" typ ...
 - WebForm 【上传图片】【图片验证码】
		
上传图片(带水印) 1.获取要上传的图片 2.加水印 3.保存下来 using System.Drawing; --绘画类命名空间 图片最后要用绝对路径保存 Server.MapP ...
 
随机推荐
- [UE4]多线程开关,开启的解决方案
			
像这样直接获取值就会被警告. 解决方法:定义一个变量speed,然后在“Blueprint Update Animation”事件中赋值给这个变量. 这样就不会被警告了. 另外一种解决方法:就是关掉多 ...
 - 第5章 IP地址和子网划分(3)_子网划分
			
6.子网划分 6.1 地址浪费 (1)IPv4公网地址资源日益紧张,为减少浪费,使IP地址能够充分利用,就要用到子网划分技术. (2)传统上一个C类地址,如212.2.3.0/24,其可用的地址范围为 ...
 - Linux性能优化 第四章 性能工具:特定进程CPU
			
4.1进程性能统计信息 4.1.1. 内核时间VS用户时间 一个应用程序所耗时间最基本的划分是内核时间与用户时间.内核时间是消耗在Linux内核上的时间,而用户时间则是消耗在应用程序或库代码上的时间. ...
 - day17常用模块1记忆
			
常用模块(详细见'egon'博客)1. 时间模块time与datetime 1. 时间戳:time.time() 应用: 用来计算时间间隔 time.sleep(5) 延迟5秒 ...
 - jmeter获取token并请求失败Internal authentication failed  400
			
jmeter访问token报错400 1.请求token地址 2.运行jmeter报错-run 3.400的意思是: 400(错误请求) 服务器不理解请求的语法. 4.报错信息如下 {"er ...
 - 安全测试3_Web后端知识学习
			
其实中间还应该学习下web服务和数据库的基础,对于web服务大家可以回家玩下tomcat或者wamp等东西,数据库的话大家掌握基本的增删该查就好了,另外最好掌握下数据库的内置函数,如:concat() ...
 - 最小化安装CentOS 7后,图形界面的安装(GNOME、KDE等)
			
安装图形化界面: 1.首先安装X(X Window System),命令为 yum groupinstall "X Window System" 2.检查一下我们已经安装的软件以及 ...
 - 【Jmeter自学】常见错误类型(九)
			
==================================================================================================== ...
 - vim more
			
启用鼠标 :set mouse=a 跳转到下一函数 下一个函数开头 ]] 当前函数末尾/下一个函数的末尾 ][ 当前函数开头/上一个函数的开头 [[ 选项可以按任何顺序生效,可以放在文件名前或后边 ...
 - An error was encountered while running(Domain=LaunchSerivcesError, Code=0)
			
今天突然遇到这样一个错误,编译可以通过,但是运行就会弹出这个错误提示: An error was encountered while running(Domain=LaunchSerivcesErro ...