在做项目是遇到上传图片,并在前端限制图片上传的大小,下面就直接贴出主要的上传图片的代码,以及图片大小的验证,但前端没有验证图片的宽高验证

  1. 一、先创建出上传图片的组件,使用filefield组件
  2.  
  3. 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 ;
    }
  4.  
  5. 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();
  6.  
  7. //上传图片的输入框格式正则验证
  1. var regexs["photo"] = /\.jpg$|\.jpeg$|\.png$/i; //图片格式
  1. var regexsTexts["photo"] = '请选择格式为“png、jpg、jpeg”的图片';
  1. 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;
    }
  1. //验证图片大小
    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;
    },
  2.  
  3. //计算文件大小,返回文件大小值,单位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;
    }
  4.  
  5. 验证图片的格式可以使用下面的方法
  1. //验证图片文件的正则
    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)');
    }
  1.  
  1.  

Extjs4 上传图片并进行图片格式以及大小验证的更多相关文章

  1. JavaScript校验图片格式及大小

    <!DOCTYPE html> <html> <head> <title>JavaScript校验图片格式及大小</title> <s ...

  2. JS验证图片格式和大小并预览

    用于上传图片的js验证: <%@ page language="java" contentType="text/html; charset=UTF-8"p ...

  3. HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)

    原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代 ...

  4. C#验证是否是真的图片格式

    做图片上传功能时,我们要限制用户上传的图片格式和大小. 但是,还有一种情况就是验证用户伪造的符合要求的图片,这种情况就必须要验证文件的真正格式. C#的办法时可以通过将文件读成二进制流,取前两个字节判 ...

  5. 利用Struts拦截器限制上传图片的格式和大小

    在这之前 Struts的一个核心功能就是大量的拦截器,既然是框架,那么自然也就贴心地为我们准备好了各种常用的功能,比如这里即将讨论的如何限制上传图片的格式和大小.那么既然是使用Struts已经写好的拦 ...

  6. jquery实现上传图片及图片大小验证、图片预览效果代码

    jquery实现上传图片及图片大小验证.图片预览效果代码 jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture() ...

  7. js上传文件(图片)的格式和大小限制

    如果你想快速解决这个问题,看本文就够了.查了好多资料,终于解决了,太耗时间了,本文留给给后来者,希望你们工作的更轻松 本文保存为.html文件用浏览器打开即可测试功能 <form id=&quo ...

  8. 基于ASP.Net +easyUI框架上传图片,实现图片上传,提交表单

    <body> <link href="../../Easyui/themes/easyui.css" rel="stylesheet" typ ...

  9. WebForm 【上传图片】【图片验证码】

     上传图片(带水印)  1.获取要上传的图片 2.加水印 3.保存下来 using System.Drawing;   --绘画类命名空间 图片最后要用绝对路径保存       Server.MapP ...

随机推荐

  1. centos找不到vim命令

    linux系统执行vim命令时,提示centos -bash : vim:command not found   这个时候需要检查vim编辑器是否安装:   输入rpm -qa|grep vim命令, ...

  2. (转)App.Config详解及读写操作

    App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是c ...

  3. sqoop导入导出

    sqoop产生背景 什么是sqoop sqoop的优势 sqoop1与sqoop2的比较 为什么选择sqoop1 sqoop在hadoop生态体系中的位置 sqoop基本架构 sqoop import ...

  4. 网页的缓存Cache与控制

    什么是缓存 Cache? 缓存位于客户端与服务器之间, 或者服务器与服务器之间.它决定是否保存所获资源的副本,以及如何使用副本,何时更新副本,这里所说的资源包括页面的HTML, 图片,文件等等. 使用 ...

  5. 限制EditText最多输入n位,设置EditText最大输入长度;

    1.比较笨的方法: /** * 设置edittext最大的输入限制 * @param editText * @param length */ private void setMaxLength(Edi ...

  6. Apache服务器下phalcon项目报Mod-Rewrite is not enabled问题

    问题如图: 项目已经按照官网的教程修改了.htaccess文件,仍旧报此错误,判断可能是apache未添加mod_rewrite,通过查询资料,经以下两步解决此问题: 1.执行sudo a2enmod ...

  7. Postgresql ERROR: permission denied for relation app_info

    启用终端,: 进入mydb数据库:\c mydb 然后给当前数据库的角色赋予权限:GRANT ALL PRIVILEGES ON TABLE 表名  TO 角色名;

  8. 编码,基本数据类型,str索引和切片,for循环

    1. 编码 1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$% 128个码位 2**7 在此基础上加了一位 2**8 8位 ...

  9. 【Git使用】sourcetree跳过注册的方法(转)

    当前只有Win的版本,Mac自行百度(笑) 很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作. 然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者操作 ...

  10. mysql中的sql_mode

    mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql> select @@ ...