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的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...
随机推荐
- [python爬虫] Selenium定向爬取虎扑篮球海量精美图片
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
- Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结
Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide ...
- jmap命令详解(转)
1.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其 ...
- 移动平台自动化测试从零开始-MonkeyRunner工具使用 (第二节)
选自:http://yuedu.baidu.com/search?word=%D3%DA%D3%BF&pbook=0 第2节 MonkeyRunner 安装部署 如果您已经正确的安装部署了A ...
- 取代奶瓶Minidwep-gtk破解WPA 全攻略
取代奶瓶Minidwep-gtk 破 WPA 全攻略 目录 1. CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2. 自带的字典破解不出密码时使用 U 盘外挂字典继 ...
- 解决Visual Studio 2010/2012在调试时lock文件的方法
调试3dsmax插件,有一个避免每次修改插件代码都需要重启3dsmax的方法,就是将导出的核心代码写在一个独立的DLL中,然后在插件代码需要导出时LoadLibrary这个DLL,导出之后再FreeL ...
- Microsoft.VisualBasic.DateAndTime.Timer 与 DateTime.Now.TimeOfDay.TotalSeconds 相当
如题,示例如下: Console.WriteLine(DateTime.Now.TimeOfDay.TotalSeconds); Console.WriteLine(Microsoft.VisualB ...
- transmission简单使用
1.安装transmission-daemon sudo apt-get install transmission-daemon 2.设置用户名和密码并打开远程连接 a). 打开文件vim /var/ ...
- Scala 深入浅出实战经典 第52讲:Scala中路径依赖代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 采用ODAC,ODBC连接Oracle【转】
采用ODAC,ODBC连接Oracle 在没有装oracle的环境中,偶尔会需要访问数据库(Word文档查看数据,开发项目运行等等),简单介绍我用过的方案. 一:ODAC 1.介绍.ODAC,全称:o ...