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 ...
随机推荐
- ARCGIS 出图显示not map metafile into memory.Not enough memory
有许多的原因,比如系统有问题,磁盘空间不够,或虚拟内存设置不对等.再有就是输出地图时分辨率的设置是否太大等. not enough memory 这个问题是ESRI的一个所谓的“臭名昭著 ...
- linux系统安装SNMP(可用)
一般我们监控Linux都是通过SSH或Telnet方式,有时候我们不方便通过这两种方式,比如遇到监控端口因为安全原因被封禁.以及SSH需要密钥登录,这都会让监控工具很难直接远程连接.而通过SNMP的方 ...
- CTF PHP文件包含--session
PHP文件包含 Session 首先了解一下PHP文件包含漏洞----包含session 利用条件:session文件路径已知,且其中内容部分可控. 姿势: php的session文件的保存路径可以在 ...
- but was actually of type 'com.sun.proxy.$Proxy101' 注入问题
最近在用springboot搭建项目框架时,遇到了如下错误,查询了一番,原来是没有引入spring框架的aop包导致: 问题: ERROR o.s.test.context.TestContextMa ...
- route
route 添加/删除一条到192.168.3.0/24的路由,网关为192.168.1.254? route add/del -net 192.168.3.0 netmask 255.255. ...
- netbeans运行项目时,弹出“cannot be run from folder that contains non-ASCII characters in path”的对话框 解决方法
netbeans运行项目时,弹出“cannot be run from folder that contains non-ASCII characters in path”的对话框,原因是项目路径中有 ...
- GRUB2 命令行使用笔记
在GRUB界面按C可进入命令行模式,学会命令行模式有助于玩转单机多OS. 磁盘描述规则: hd0,0 表示第1硬盘第1分区 help 显示帮助(内容会比这里全,此处只做几条常用命令介绍) cat 命令 ...
- java开发_""和null的区别
转自:http://www.cnblogs.com/hongten/archive/2012/11/08/java_null.html#undefined 在代码中: 1 //name可以为" ...
- Windows向虚拟机Linux传输文件方法
在Windows中装了个centOS,进行文件操作时,把mv写成了rm,然后就悲剧了.. 赶紧从网上找来文件的具体内容,然后由Windows向Linux挂载共享文件夹. 具体做法: 在Windows中 ...
- Ubuntu 16.04 fatal: Unable to find remote helper for 'https'
在Windows10 的Linux子系统下安装oh-my-zsh的时候出现如下错误: fatal: Unable to find remote helper for 'https' 网上有描述说没有安 ...