ext 3.x 让uploadPanel支持swfupload
经常做系统的时候会遇到上传组件,特别是大文件的时候总是很郁闷,长时间无响应导致糟糕的用户体验,所以决定采用swfupload来支持文件上传。
大体代码如下。
var upload = {};
upload.UploadPanel = function (cfg) {
this.iconCls = 'add';
this.text = 'upload';
Ext.apply(this, cfg);
this.setting = {
upload_url: this.uploadUrl,
flash_url: this.flashUrl || '../../../../Scripts/Platform/Upload/swfupload.swf',
file_size_limit: this.fileSize || (1024 * 50),
file_post_name: this.filePostName,
file_types: this.fileTypes || "*.*",
file_types_description: "All Files",
file_upload_limit: "5",
//file_queue_limit : "10",
post_params: this.postParams || { savePath: 'upload\\' },
use_query_string: true,
debug: false,
button_cursor: SWFUpload.CURSOR.HAND,
button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE,
custom_settings: {
scope_handler: this
},
file_queued_handler: this.filequeuedhandler,
file_queue_error_handler: this.filequeueerrorhandler,
file_dialog_complete_handler: this.filedialogcomplete_handler,
upload_start_handler: this.uploadstarthandler,
upload_progress_handler: this.onUploadProgress,
upload_error_handler: this.uploaderrorhandler,
upload_success_handler: this.onUploadSuccess,
upload_complete_handler: this.uploadcompletehandler,
queue_complete_handler: this.queuecompletehandler
};
upload.UploadPanel.superclass.constructor.call(this, {
listeners: {
'afterrender': function (e) {
var em = e.btnEl.parent('em');
var placeHolderId = Ext.id();
em.setStyle({
position: 'relative',
display: 'block'
});
em.createChild({
tag: 'div',
id: placeHolderId
});
this.swfupload = new SWFUpload(Ext.apply(this.setting, {
button_width: em.getWidth(),
button_height: em.getHeight(),
button_placeholder_id: placeHolderId
}));
this.swfupload.uploadStopped = false;
Ext.get(this.swfupload.movieName).setStyle({
position: 'absolute',
top: 0,
left: -2
});
},
scope: this,
delay: 100
}
});
}
Ext.extend(upload.UploadPanel, Ext.Button, {
filequeuedhandler: function () {
this.startUpload();
},
filequeueerrorhandler: function () {
},
filedialogcomplete_handler: function () {
},
uploadstarthandler: function () {
},
onUploadProgress: function (file, bytesComplete, totalBytes) {
},
uploaderrorhandler: function () {
},
onUploadSuccess: function () {
},
uploadcompletehandler: function () {
},
queuecompletehandler: function () {
}
});
Ext.reg('btnupload', upload.UploadPanel);
于是调用的时候就很easy了。
new Ext.Window({
width: 650,
title: 'UPLOAD',
height: 300,
tbar: [
{ xtype: 'btnupload',
text: '上传',
fileSize: 1024 * 50,
uploadUrl: 'SaveFile',
filePostName: 'file',
fileTypes: '*.jpg;*.gif;*.png;*.jpeg',
postParams: { savePath: 'upload\\' },
onUploadSuccess: function (s, f) {
console.log(f);
},
onUploadProgress: function (file, bytesComplete, totalBytes) {
var percent = Math.ceil((bytesComplete / totalBytes) * 100);
percent = percent == 100 ? 100 : percent;
console.log(percent);
}
}],
items:
[
]
}).show();


这样需要上传的时候就很轻松了。
ext 3.x 让uploadPanel支持swfupload的更多相关文章
- 【翻译】Ext JS 5的平板支持
原文:Ext JS 5 Tablet Support Ext JS已被公认为桌面Web应用程序的领先框架.自从平板开始在全球挑战PC的销售,无论是个人还是企业,电脑横向的应用已经产生急剧的变化.Sen ...
- [转载]ExtJs4 笔记(3) Ext.Ajax 对ajax的支持
作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/) 本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事 ...
- ExtJs4 笔记(3) Ext.Ajax 对ajax的支持
本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事件操作封装,还有扩展的常用函数等.Ajax服务端交互式操作是提交到.NET MVC.后续服务端交互都采用这一方式实现. ...
- 12. Ext.Ajax 对ajax的支持
转自:http://www.cnblogs.com/lipan/archive/2011/12/09/2272793.html 本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封 ...
- Ext JS - 问答
Ext JS - 问答 在下面你将可以找到关于Ext JS 的最常见问题的答复.如果没有找到您所需的答复,请访问 Ext JS 论坛或者提交一个支持申请. 如果你确信你的问题可以对本页有补充,请让我们 ...
- SWFUpload简介及中文参考手册(share)
SWFUpload SWFUpload 版本 2 概览 (Overview) 入门( Getting Started) js对象 (SWFUpload JavaScript Object) 构造器(C ...
- [转]使用Sencha Ext JS 6打造通用应用程序
原文地址:http://www.uedsc.com/using-sencha-ext-js-6-to-build-universal-apps.html 在Sencha和整个Ext JS团队的支持下, ...
- SWFUpload 2.5.0版 官方说明文档 中文翻译版
原文地址:http://www.cnblogs.com/youring2/archive/2012/07/13/2590010.html#setFileUploadLimit SWFUpload v2 ...
- 【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)
GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...
随机推荐
- SQL——神奇代码1之Update
说明:一个带有update的循环的代码.很简单,但是在QQ群里问了,应该说是很少有人注意这个问题,也就是很少有人真的理解SQL中的Update. 代码如下: if object_id('tempdb. ...
- 使用grunt合并压缩js、css文件
需要了解的知识: 1.nodejs的安装与命令行使用 2.nodejs安装应用 3.grunt的初步了解 本文已假定读者已经熟悉以上知识. 好,我们继续: 任务1:将src目录下的所有zepto及插件 ...
- MySQL联合查询语法内联、左联、右联、全联
MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码) userid username password 1 jack ...
- centos 防火墙设置
1.安装iptables防火墙 怎么知道系统是否安装了iptables?执行iptables -V,如果显示如: iptables v1.3.5 说明已经安装了iptables. 如果没有安装ipta ...
- Eclipse连接到My sql数据库的操作总结/配置数据库驱动
Eclipse连接到MYSQL数据库的操作 (自己亲测,开始学习Eclipse(我的Eclipse版本是4.5.2,Jdbc驱动器的jar包版本是5.1.7,亲测可以使用)连接到数据库的时候,发现网上 ...
- jQuery自动分页打印表格(HTMLtable),可以强制换页
最近做项目的时候需要做批量打印订单,一个订单可能在最后一页是的内容是不足一页的,这时候下一个订单需要下一页打印,这样就需要强制换页.在下一页再打印下一个订单 部分代码: 部分重要的css是分页的换页的 ...
- javaweb学习总结(二十三)——jsp自定义标签开发入门
一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...
- 从零开始学Bootstrap(3)
首先让我们回顾一下系列内容. 从零开始学Bootstrap(1)介绍了BootStrap最简单的模板,逐条解释了每行代码的含义. 从零开始学Bootstrap(2)强调了边学边做,通过实际的例子,讲解 ...
- [推荐]Bitnami 开源软件包安装解决方案
[推荐]Bitnami 开源软件包安装解决方案 Bitnami is an app store for server software. Install your favorite applicati ...
- Activiti 删除key值相同的所有不同版本的流程定义
package com.mycom.processDefinition; import java.io.File; import java.io.IOException; import java.io ...