`
liuxi1024
  • 浏览: 390931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Extjs之--图片上传器

阅读更多

1、效果图:


点击文本框后图标,弹出图片上传窗口
 

 

说明:

(1)、点击文本框后图标,弹出上传图片窗口,上传成功后将生成的图片名称添加入文本框内。

(2)、图片可预览,并对非图片文件进行阻挡。

 

2、app-imageUpload.js代码

 

//上传图片类型
var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/;

var win_uploadImage = new Ext.Window({
	layout:'fit',
	width:380,
	closeAction:'hide',
	height:380,
	resizable:false,
	shadow:false,
	modal:true,
	closable:true,
	bodyStyle:'padding: 5 5 5 5',
	animCollapse:true,
	imageIndexName:'',
	items:[{
		xtype:'form',
		id:'image-upload-form',
		frame:true,
		border:false,
		isAdd:false,
		enctype: 'multipart/form-data',
		fileUpload : true,
		layout : 'form',
		items:[{
		   id : 'file-idx',
	       name : 'file',
	       inputType : "file",
	       fieldLabel : '上传图片',
	       xtype : 'textfield',
	       blankText:'上传图片不能为空',
	       anchor : '100%' 
		},{
		   xtype : 'box',   
	       id : 'browseImage',
	       fieldLabel : "预览图片",   
	       autoEl : {
	           width : 300,
	           height : 300,
	           tag : 'img',
	            // type : 'image',
	           src : Ext.BLANK_IMAGE_URL,
	           style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',   
	           complete : 'off',   
	           id : 'imageBrowse'
	       }
		}
		],
		listeners : {   
	        'render' : function(f) {
	            //
	            this.form.findField('file-idx').on('render', function() {
	                //通過change事件,图片也动态跟踪选择的图片变化
	                Ext.get('file-idx').on('change',
                        function(field, newValue, oldValue) {
	                	//得到选择的图片路径
                        var url = 'file://'+ Ext.get('file-idx').dom.value;
                        //alert("url = " + url);   
                        //是否是规定的图片类型
                        if (img_reg.test(url)) {
                            if (Ext.isIE) {
                                var image = Ext.get('imageBrowse').dom;   
                            	image.src = Ext.BLANK_IMAGE_URL;// 覆盖原来的图片
                            	image.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = url;   
                            }// 支持FF
                            else {
                                Ext.get('imageBrowse').dom.src = Ext.get('file-idx').dom.files.item(0).getAsDataURL();
                            }
                        }
                    }, this);   
	            }, this);   
	        }   
	    }, 
		buttons:[{
	       text:'关闭',
	       handler:function(){
				win_uploadImage.hide();
	       }
	       },{
	            text:'上传',
	            handler:function() {
		    	    var furl="";
		    	    furl = Ext.getCmp('image-upload-form').form.findField('file').getValue();
					var type = furl.substring(furl.length - 3).toLowerCase();
					if (furl == "" || furl == null) {
						return;
					}
					if (type != 'jpg' && type != 'bmp' && type != 'gif' && type != 'png') {
						alert('仅支持jpg、bmp、gif、png格式的图片');
						return;
					}
	    	   
		    	   Ext.getCmp('image-upload-form').form.submit({
			  			clienValidation:true,
			  			waitMsg:'正在上传请稍候',
			  			waitTitle:'提示',
			  			url:'upload.do',
			  			method:'POST',
			  			success:function(form,action){
		    		   		var picName = action.result.data;
		    		   		if(win_uploadImage.imageIndexName!=''){
		    		   			Ext.getCmp(win_uploadImage.imageIndexName).setValue(picName);
		    		   		}
		    		   		//reset form
		    		   		Ext.getCmp('image-upload-form').form.el.dom.reset();
		    		   		if (Ext.isIE) {
		    		   			var i_image = Ext.get('imageBrowse').dom;
		    		   			i_image.src = Ext.BLANK_IMAGE_URL;
		    		   			i_image.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = Ext.BLANK_IMAGE_URL;
		    		   		}else{
		    		   			Ext.get('imageBrowse').dom.src = Ext.BLANK_IMAGE_URL;
		    		   		}
		    		   		
		    		   		win_uploadImage.hide();
			    	   	},
			  			failure:function(form,action){
			    	   		Ext.MessageBox.show({title: '失败',msg: '上传失败!',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});
			  		 	}
		    	   })
	       		}
	       }
	   ]
}]
});

 

3、调用该window的js代码

 

xtype: 'trigger',
fieldLabel: '图像1',
id:'idx_CheckPic1',
readOnly:true,
width: 180,
triggerClass:'x-form-image-trigger',
name: 'checkPic1',
onTriggerClick : function(){
	win_uploadImage.setTitle("上传图片-" + "图像1");
	win_uploadImage.imageIndexName = 'idx_CheckPic1';
	win_uploadImage.show();
}

 

 

  • 大小: 1.1 KB
  • 大小: 200.7 KB
分享到:
评论
5 楼 mszb00123 2015-01-19  
很有用  
4 楼 ccfyran 2011-10-29  
var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/; 
这行东西真的没有错吗???????求解!!!!
3 楼 liuxi1024 2011-09-14  
.x-form-image-trigger{background-image:url(../images/default/form/image-trigger.gif);cursor:pointer;}
2 楼 tyut8518 2011-09-14  
triggerClass:'x-form-image-trigger', 
兄弟你这个样式还没贴上来
1 楼 xisuchi 2011-02-25  

相关推荐

    Extjs4-学习指南

    - **上传文件**:实现文件上传功能。 - **ComponentQuery**:使用组件查询 API 进行组件查找。 - **Ext.data.Model**:深入理解数据模型的使用。 - **Combobox 三级联动**:实现级联选择框的功能。 #### 5. 员工...

    EXtjs 图片批量上传

    本教程将深入探讨如何在ExtJS中实现图片的批量上传功能,以及与之相关的批量删除操作。 首先,批量上传图片的核心是利用HTML5的File API,它允许用户在不离开当前页面的情况下读取、处理和上传本地文件。在ExtJS中...

    Extjs的HtmlEidtor富文本编辑器的使用和图片上传显示的实现

    这篇博客文章"Extjs的HtmlEidtor富文本编辑器的使用和图片上传显示的实现"将详细介绍如何使用HtmlEditor以及如何实现图片上传和显示的功能。 首先,我们需要了解HtmlEditor的基本用法。HtmlEditor通常包含一个...

    extjs htmleditor 图片上传和添加网络图片编辑器

    总结起来,ExtJS HTMLEditor的图片上传和添加网络图片功能涉及前端的事件处理、文件上传、数据交互,以及后端的文件接收、存储和返回URL。理解和实现这些细节,可以创建出功能完备且用户体验良好的富文本编辑器。

    ExtJs框架系列之图片批量显示,上传,删除

    2. 实现文件上传功能,使用`FileField`和Ajax请求将图片上传至服务器。 3. 创建删除图片的功能,通过Ajax请求发送删除指令,服务器执行删除操作后更新UI。 4. 添加必要的用户体验元素,如进度条、确认对话框和错误...

    extjs struts2 多图片批量上传控件

    在本场景中,"extjs struts2 多图片批量上传控件"是一个集成解决方案,允许用户通过ExtJS前端框架批量上传多张图片,并通过Struts2后端框架进行处理。 **ExtJS** 是一个基于JavaScript的UI库,它提供了丰富的组件和...

    Java ExtJS界面漂亮的带图片上传在线编辑器源码.rar

    Java ExtJS界面漂亮的带图片上传在线编辑器源码,是在HTMLArea基础上扩展而来,界面想当专业漂亮,而且为编辑器添加了常用的图片上传功能,使得编辑器的功能更加实用,可应用于基于Java的JSP WEB应用中。

    Extjs图片上传 带过滤和缩略图

    在"Extjs图片上传 带过滤和缩略图"这个主题中,我们将深入探讨如何使用ExtJS实现图片上传功能,同时结合过滤和缩略图显示,以提升用户体验。 1. **图片上传组件**: 在ExtJS中,可以使用`Ext.form.FileField`或`...

    完整的Extjs4 htmleditor上传图片插件(包括实例和用法)

    本资源提供了一个完整的ExtJS4 htmleditor图片上传插件,包括前端和后端的实现代码,对于开发者来说是一份非常有价值的参考资料。 首先,我们来看`htmleditor`组件。在ExtJS4中,`Ext.form.field.HtmlEditor`是HTML...

    extjs图片上传

    在EXTJS框架中,图片上传功能是一个常见的需求,尤其在构建富客户端应用时。EXTJS提供了强大的组件模型,使得开发...以上就是EXTJS图片上传功能的基本实现流程,通过前后端的协作,可以实现高效且安全的图片上传功能。

    ExtJS带进度条的多文件上传和图片预览

    在"ExtJS带进度条的多文件上传和图片预览"这个项目中,它展示了如何利用ExtJS来实现一个高效且用户友好的文件上传功能,尤其适用于处理大量或大体积的文件。下面将详细介绍这个项目中的关键知识点。 1. **ExtJS组件...

    批量图片预览上传(extjs,支持html5和flash)

    在IT领域,批量图片预览上传是Web应用中常见的功能,尤其在图像处理、社交媒体或者内容管理系统中。本文将深入探讨如何使用EXTJS框架结合...理解并掌握这些知识点,能帮助开发者构建高效、安全的批量图片上传功能。

    扩展ExtJs的HtmlEditor编辑器插入图片.pdf

    插入图片是HtmlEditor编辑器中最常用的功能之一,本文将详细介绍如何扩展ExtJs的HtmlEditor编辑器以实现图片的插入。 HtmlEditor编辑器的基本概念 ------------------------ 在ExtJs框架中,HtmlEditor编辑器是一...

    extjs 上传图片(可以上传其他类型的文件)asp 实现

    在本文中,我们将深入探讨如何使用ExtJS框架与ASP(Active Server Pages)技术结合,实现一个功能完善的文件上传功能,特别是针对图片和其他类型文件的上传。ExtJS是一款强大的JavaScript库,用于构建桌面级的Web...

    ExtJs框架系列之图片批量显示,上传,删除程序源码

    ExtJs框架系列之图片批量显示,上传,删除程序源码

    ExtJS原生多文件拖动上传组件

    ExtJS原生多文件拖动上传组件 使用时修改包路径 1.多文件上传 2.支持拖动上传 3.支持图片压缩 4.支持图片合并 5.文件排序 可扩展实时图片预览 api //初始化画板 initCanvas //上传文件窗口 uploadWindow //初始化...

    ExtJS验证上传文件类型

    ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...

    EXTJS3.0多文件上传组件

    这个面板通常包含文件选择器、上传按钮、上传进度指示器等元素。UploadPanel.js会封装SWFUpload的功能,并与EXTJS的组件系统集成,提供了一种声明式的配置方式,使得开发者可以轻松地在EXTJS应用中嵌入多文件上传...

    extjs+servlet实现图片上传

    在本示例中,我们将探讨如何结合ExtJS 3和Servlet技术来实现图片上传功能。 首先,我们需要理解ExtJS的组件体系。在ExtJS中,`FileUploadField`是一个专门用于文件上传的表单字段。通过这个组件,用户可以在浏览器...

    EXTJS4开发的图片文章管理项目实例

    为了实现图片上传功能,EXTJS4提供了一种叫做FileField的组件,它支持文件选择和上传。后台JAVA服务接收这些文件,通常会将其存储在服务器的某个目录,并返回文件存储路径,以便前端显示和后续操作。此外,安全性也...

Global site tag (gtag.js) - Google Analytics