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
分享到:
相关推荐
- **上传文件**:实现文件上传功能。 - **ComponentQuery**:使用组件查询 API 进行组件查找。 - **Ext.data.Model**:深入理解数据模型的使用。 - **Combobox 三级联动**:实现级联选择框的功能。 #### 5. 员工...
本教程将深入探讨如何在ExtJS中实现图片的批量上传功能,以及与之相关的批量删除操作。 首先,批量上传图片的核心是利用HTML5的File API,它允许用户在不离开当前页面的情况下读取、处理和上传本地文件。在ExtJS中...
这篇博客文章"Extjs的HtmlEidtor富文本编辑器的使用和图片上传显示的实现"将详细介绍如何使用HtmlEditor以及如何实现图片上传和显示的功能。 首先,我们需要了解HtmlEditor的基本用法。HtmlEditor通常包含一个...
总结起来,ExtJS HTMLEditor的图片上传和添加网络图片功能涉及前端的事件处理、文件上传、数据交互,以及后端的文件接收、存储和返回URL。理解和实现这些细节,可以创建出功能完备且用户体验良好的富文本编辑器。
2. 实现文件上传功能,使用`FileField`和Ajax请求将图片上传至服务器。 3. 创建删除图片的功能,通过Ajax请求发送删除指令,服务器执行删除操作后更新UI。 4. 添加必要的用户体验元素,如进度条、确认对话框和错误...
在本场景中,"extjs struts2 多图片批量上传控件"是一个集成解决方案,允许用户通过ExtJS前端框架批量上传多张图片,并通过Struts2后端框架进行处理。 **ExtJS** 是一个基于JavaScript的UI库,它提供了丰富的组件和...
Java ExtJS界面漂亮的带图片上传在线编辑器源码,是在HTMLArea基础上扩展而来,界面想当专业漂亮,而且为编辑器添加了常用的图片上传功能,使得编辑器的功能更加实用,可应用于基于Java的JSP WEB应用中。
在"Extjs图片上传 带过滤和缩略图"这个主题中,我们将深入探讨如何使用ExtJS实现图片上传功能,同时结合过滤和缩略图显示,以提升用户体验。 1. **图片上传组件**: 在ExtJS中,可以使用`Ext.form.FileField`或`...
本资源提供了一个完整的ExtJS4 htmleditor图片上传插件,包括前端和后端的实现代码,对于开发者来说是一份非常有价值的参考资料。 首先,我们来看`htmleditor`组件。在ExtJS4中,`Ext.form.field.HtmlEditor`是HTML...
在EXTJS框架中,图片上传功能是一个常见的需求,尤其在构建富客户端应用时。EXTJS提供了强大的组件模型,使得开发...以上就是EXTJS图片上传功能的基本实现流程,通过前后端的协作,可以实现高效且安全的图片上传功能。
在"ExtJS带进度条的多文件上传和图片预览"这个项目中,它展示了如何利用ExtJS来实现一个高效且用户友好的文件上传功能,尤其适用于处理大量或大体积的文件。下面将详细介绍这个项目中的关键知识点。 1. **ExtJS组件...
在IT领域,批量图片预览上传是Web应用中常见的功能,尤其在图像处理、社交媒体或者内容管理系统中。本文将深入探讨如何使用EXTJS框架结合...理解并掌握这些知识点,能帮助开发者构建高效、安全的批量图片上传功能。
插入图片是HtmlEditor编辑器中最常用的功能之一,本文将详细介绍如何扩展ExtJs的HtmlEditor编辑器以实现图片的插入。 HtmlEditor编辑器的基本概念 ------------------------ 在ExtJs框架中,HtmlEditor编辑器是一...
在本文中,我们将深入探讨如何使用ExtJS框架与ASP(Active Server Pages)技术结合,实现一个功能完善的文件上传功能,特别是针对图片和其他类型文件的上传。ExtJS是一款强大的JavaScript库,用于构建桌面级的Web...
ExtJs框架系列之图片批量显示,上传,删除程序源码
ExtJS原生多文件拖动上传组件 使用时修改包路径 1.多文件上传 2.支持拖动上传 3.支持图片压缩 4.支持图片合并 5.文件排序 可扩展实时图片预览 api //初始化画板 initCanvas //上传文件窗口 uploadWindow //初始化...
ExtJS 验证上传文件类型 ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出...
这个面板通常包含文件选择器、上传按钮、上传进度指示器等元素。UploadPanel.js会封装SWFUpload的功能,并与EXTJS的组件系统集成,提供了一种声明式的配置方式,使得开发者可以轻松地在EXTJS应用中嵌入多文件上传...
在本示例中,我们将探讨如何结合ExtJS 3和Servlet技术来实现图片上传功能。 首先,我们需要理解ExtJS的组件体系。在ExtJS中,`FileUploadField`是一个专门用于文件上传的表单字段。通过这个组件,用户可以在浏览器...
为了实现图片上传功能,EXTJS4提供了一种叫做FileField的组件,它支持文件选择和上传。后台JAVA服务接收这些文件,通常会将其存储在服务器的某个目录,并返回文件存储路径,以便前端显示和后续操作。此外,安全性也...