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

Extjs2.x 实现文件上传组件

 
阅读更多

该上传组件已经在项目中使用,分为两个模式,一种是弹出一个window;

对上传文件进行控制:



点击开始上传提示

上传成功后可以进行打包下载

另一种是直接嵌入到面板中。
入续会贴过来。

HM={};
HM.themis={};
HM.themis.FileUploadMgr={}
HM.themis.FileUploadMgr = {
	fileUploadFormWin : undefined,
//	linkInfoFormWin : undefined,
//	reportFormWins : undefined,
//	fsa : undefined,
    showAttachmentsUrl: 'sysFile_getFileList.action',
    uploadUrl:'sysFile_uploadFile.action',
    downloadUrl:'sysFile_downFile.action',
    deleteUrl: 'sysFile_deleteByLogic.action',
    relationId:'id',
    fileNum:0,
    invalidTypeMsg : '不能下载还未上传的文件!',
    zipFileName :'打包下载文件',
    title:'title',
	warnMsgTitle : '警告',
    sort:'document',
    width : 520,
    height : 340,
    viewFlag:false,
    show : function(id) {
		    Ext.ux.UploadDialog.EnableFileCount=this.fileNum;
            if(!this.permitted_extensions) {
             this.permitted_extensions = Ext.harmony.util.SystemConfig.allowFileTypes;
            }
			this.fileUploadFormWin = new Ext.ux.UploadDialog.Dialog({
				autoCreate : true,
				closable : true,
				modal : true,
				collapsible : false,
				draggable : true,
				minWidth : 380,
				minHeight : 220,
				width : this.width,
				height : this.height,
				proxyDrag : true,
				permitted_extensions:this.permitted_extensions,
                viewFlag : this.viewFlag,
                zipFileName : this.zipFileName,
				resizable : true,
				post_var_name : 'file',
				constraintoviewport : true,
				title : this.title,
                
                deleteUrl : this.deleteUrl,
				url : this.uploadUrl,
                base_params: {relationId:this.relationId,sort:this.sort},
				reset_on_hide : true,
				allow_close_on_upload : true
			});
		
		this.fileUploadFormWin.show();
		
		this.initData(this.relationId);

	},

//	hide : function() {
//		this.fileUploadFormWin.hide();
//	},

    initData : function(infoId) {

		this.fileUploadFormWin.grid_panel
				.on("rowdblclick", this.download, this);
		Ext.Ajax.request({
			url : this.showAttachmentsUrl,
			params : {relationId: infoId,sort:this.sort},
			method : "POST",
//			form : this.form,
//			isUpload : true,
			success : this.onAjaxSuccess,
			failure : this.onAjaxFailure,
			scope : this
		});

	},

    onAjaxSuccess : function(response, options) {
		var json_response;
        try {
			var rt = response.responseText;
			var filter = rt.match(/^<[^>]+>((?:.|\n)*)<\/[^>]+>$/);
			if (filter) {
				rt = filter[1];
			}

			json_response = Ext.util.JSON.decode(rt);
		} catch (e) {
            return;
		}

		var store = this.fileUploadFormWin.grid_panel.getStore();
     
		var button_container = this.fileUploadFormWin.el.child(".x-btn-center");
		button_container.position("relative");
		var myinput_file = Ext.DomHelper.append(button_container, {
			tag : "input",
			type : "file",
			size : 1,
			name : 'files',
			style : "position: absolute; display: none; border: none; cursor: pointer"
		}, true);
    
        for (var i = 0; i < json_response.datas.length; i++) {
			store.add(new Ext.ux.UploadDialog.FileRecord({
				state : Ext.ux.UploadDialog.FileRecord.STATE_FINISHED,
				filename : json_response.datas[i].fileName,
				note : "已上传",
				input_element : myinput_file,
				id : json_response.datas[i].id
			}));
		}
		  this.fileUploadFormWin.changeAddStat();
          this.fileUploadFormWin.changeDownZipStat();
	},

    download :  function(gridObj, rowIndex, e ) {
  
        var selRecord = gridObj.getStore().getAt(rowIndex);
        var id = selRecord.get("id");
        if (selRecord.get("state") == Ext.ux.UploadDialog.FileRecord.STATE_FINISHED && id) {
            document.location.href=this.downloadUrl + "?id=" + id;
        } else {
            Ext.Msg.alert(this.warnMsgTitle, this.invalidTypeMsg);
            return;
        }
//		var array = this.fileUploadFormWin.grid_panel.getSelectionModel()
//				.getSelections();
//		for (var i = 0; i < array.length; i++) {
//			if (array[i].get("id") == undefined) {
//				Ext.Msg.alert(this.warnMsgTitle, this.invalidTypeMsg);
//				return;
//			}
////			document.location.href = this.downloadUrl + "?id="
////					+ array[i].get("id");
//            window.open(this.downloadUrl + "?id="
//                    + array[i].get("id"));
//		}
	}

};
HM.themis.FileUploadWin = function(config) {
  Ext.apply(this, config);
}


  • 大小: 19.3 KB
  • 大小: 31.2 KB
  • 大小: 24.1 KB
  • 大小: 30 KB
  • 大小: 25.8 KB
0
0
分享到:
评论

相关推荐

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    - 在ExtJS 2.x版本中实现的多文件上传功能通常无法直接应用于3.x版本。 - 需要对原有代码进行修改,确保其能够在新版本中正常运行。 2. **UploadDialog组件** - `UploadDialog`是一种用于实现文件上传功能的...

    extjs 3.x upload上传组件

    ExtJS 3.x Upload上传组件是基于ExtJS 3.x版本的一个功能强大的文件上传工具,它为Web应用程序提供了用户友好的界面和灵活的文件管理功能。这个组件在Web开发中非常实用,尤其对于需要处理大量文件上传的项目,如...

    extjs3.x+swfupload.swf多文件上传终结版

    ExtJS 3.x 和 SWFUpload 是两种不同的技术,它们结合使用可以实现高效的多文件上传功能。这篇内容将深入解析这两个技术以及它们如何协同工作。 **ExtJS 3.x** ExtJS 是一个流行的JavaScript库,主要用于构建富...

    ExtJS实现多文件上传UploadDialog For ExtJS3.x

    综上所述,实现ExtJS 3.x的多文件上传功能,需要结合Struts2框架,完成前后端的配置、实体模型的定义、Action的编写,以及ExtJS组件的使用。这一过程涉及到了HTTP文件上传、JSON数据交换、数据库操作等多个技术点,...

    Extjs中文教程2.x

    ### Extjs中文教程2.x 知识点概览 #### 一、Extjs简介与准备工作 **1.1 Extjs概述** - **定义**: Extjs 是一个基于 JavaScript 的开源前端框架,用于构建交互式 Web 应用程序。 - **特点**: 提供丰富的 UI 组件、...

    UploadDialog3_x 下载

    2. **进度条显示**:在文件上传过程中,组件会显示每个文件的上传进度,使用户了解当前上传状态,增强用户体验。 3. **错误处理**:当某个文件上传失败时,组件通常会提供错误提示,并允许用户重新上传失败的文件,...

    [上传下载]ExtJS 2.2 开源网络硬盘系统_dogdisk.rar

    3. **文件管理组件**:系统可能包含文件列表、文件上传和下载、文件夹操作等功能,这需要利用到ExtJS的GridPanel、FormPanel等组件。例如,GridPanel可以用来展示文件列表,FormPanel可以用于文件上传表单。 4. **...

    ExtJS 2.2 开源网络硬盘系统-dogdisk.zip

    4. **文件管理功能**:dogdisk的核心功能包括文件上传、下载、删除、重命名和移动。这些操作通常通过AJAX异步技术实现,使得用户在不刷新页面的情况下即可完成,提高了用户体验。 5. **安全与权限管理**:一个完整...

    extjs 桌面风格 管理系统 极力推荐

    6. **文件管理器(File Manager)**:模拟文件系统的界面,允许用户进行文件的浏览、上传和下载。 7. **菜单和工具栏(Menus and Toolbars)**:提供应用的操作入口,包括下拉菜单、浮动工具栏等。 8. **数据存储...

    Ext UploadDialog For Ext3.2.1 附使用示例

    UploadDialog是ExtJS中一个组件,用于实现文件上传功能,通常与表单配合使用,为用户提供友好的界面交互。在ExtJS 2.x版本中,UploadDialog已经被广泛使用,但随着版本升级,对于ExtJS 3.2.1这样的较新版本,官方并...

    深入浅出Extjs4.1.1

    不多说,如果你需要学习Extjs或者是不懂Extjs,这门视频能对你有很大的帮助,文件过大,上传乃是下载链接,下面上目录: 1、ExtJs初识及其环境搭建 2、开始ExtJs梦想之旅# n8 }: ~+ d4 X+ V1 c 3、ExtJS工具栏、菜单...

    SSH2上传实现

    本文将详细介绍如何利用SSH2(Struts2 + Spring + Hibernate)框架结合ExtJS前端库实现文件上传功能。具体包括前端界面设计、JavaScript交互逻辑以及后端处理流程。 #### 二、前端实现 ##### 1. 前台页面设计 **...

    5款Ajax 文件上传控件

    FancyUpload是一个采用Flash与Ajax(MooTools)技术实现包含上传进度条的多文件上传组件,类似于SWFUpload。 2. SwfUploadPanel (演示地址) SwfUploadPanel是一个结合SwfUpload v2.0.2与ExtJS 2.0.x开发的多文件上传...

    Hibernate+Spring+Struts2+ExtJS开发CRUD功能

    3. **Struts2**:是MVC架构的实现,2.x版本强化了动态类型处理、文件上传等功能,同时与Spring和Hibernate有良好的集成性。 4. **ExtJS**:一个用于构建Web应用程序的JavaScript库,2.X版本提供了丰富的UI组件和数据...

    extjs-form组件配置参数详解

    - **fileUpload**: 是否启用文件上传功能。 - **timeout**: 动作的超时时间,默认为30秒。 - **trackResetOnLoad**: 是否在加载时清除表单数据。 **方法** - **doAction(String/Object actionName, [Object options...

    extjs 4.1.1 Demo和API

    如果直接在本地文件系统中打开HTML文件,由于同源策略的限制,某些资源可能无法加载,因此建议将文件上传至本地服务器或使用像Apache或Nginx这样的开发环境。 ExtJS 4.1.1中的主要亮点可能包括: 1. **MVC架构**:...

    Extjs的FileUploadField文件上传出现了两个上传按钮

    ExtJS的FileUploadField是用于实现文件上传功能的一个组件,它是ExtJS库中的一种扩展插件,位于examples/ux文件夹下。FileUploadField通常与表单(FormPanel)一起使用,允许用户选择本地文件并将其上传到服务器。...

    Ext3_FileUpload:Ext上传文件

    Ext3_FileUpload是基于JavaScript库ExtJS 3.x版本的一个组件,主要用于实现Web应用程序中的文件上传功能。在ExtJS框架中,它提供了用户友好的界面和便捷的API,使得开发者可以轻松地集成文件上传到自己的应用程序中...

    适合ExtJS使用的图标

    ExtJS是一种广泛应用于开发富客户端Web应用的JavaScript框架,它提供了丰富的组件库和强大的数据管理功能。在ExtJS中,图标(Icon)是界面设计的重要元素,能够为按钮、菜单项和其他UI组件添加视觉提示,增强用户...

Global site tag (gtag.js) - Google Analytics