`
什么向往
  • 浏览: 80812 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ExtJs文件上传组件(UploadDialog)

阅读更多
第一种方法:传统的上传方式
在formpanal中增加一个fileUpload的属性,

 Ext.onReady(function(){ 
  
   var form = new Ext.form.FormPanel({ 
      renderTo:'file',
      labelAlign: 'right', 
      title: '文件上传', 
      labelWidth: 60, 
      frame:true,
      url: '../UpLoadServlet',//fileUploadServlet 
      width: 300, 
      height:200,
      fileUpload: true,   

      items: [{ 
         xtype: 'textfield', 
         fieldLabel: '文件名', 
         name: 'file', 
         inputType: 'file'//文件类型 
       }], 
      
     buttons: [{ 
         text: '上传', 
         handler: function() { 
         form.getForm().submit({ 
         success: function(form, response){ 
            Ext.Msg.alert('信息', response.result.msg); 
         }, 
        failure: function(){ 
           Ext.Msg.alert('错误', '文件上传失败'); 
        } 
      }); 
     } 
   }] 
   }); 

   }); 


第二种方法:借助Ext.ux.UploadDialog.Dialog的组件,在编码时需要导入两个文件
<link rel="stylesheet" type="text/css" href="../../../js/extjs/UploadDialog/css/Ext.ux.UploadDialog.css" />
<script type="text/javascript" src="../../../js/extjs/UploadDialog/Ext.ux.UploadDialog.packed.js"></script>
组件的使用发放如下
var dialog = new Ext.ux.UploadDialog.Dialog({  
               autoCreate: true,  
               closable: true,  
               collapsible: false,  
               draggable: true,  
               minWidth: 400,        
               minHeight: 200,  
               width: 400,  
               height: 350,  
               permitted_extensions:['JPG','jpg','jpeg','JPEG','GIF','gif','xls','XLS'],  
               proxyDrag: true,  
               resizable: true,  
               constraintoviewport: true,  
               title: '文件上传',  
               url:'../UpLoadServlet',
               reset_on_hide: false,  
               allow_close_on_upload: true ,
               upload_autostart: false 
            });  
//定义上传文件的按钮
var btnShow = new Ext.Button({
        text:'上传文件',
        listeners:{
            click:function(btnThis,eventobj){
                dialog.show();
            }
        }
  });

在使用此方法进行文件上传时,其后台往页面的返回值类型是这样的:
{'success':true,'message':'上传成功'}
如果没有success:true,无论上传成功与否,显示的都是上传失败,其实这个和form.submit()的提交方式是一个道理。

后台就是最为普通的文件上传操作,还是附上代码吧,我用的是JspSmartUpload的上传组件,网上很多,建议下载个经过"汉化"的组件,因为官方的组件对于文件名为中文的上传不太支持,会出现乱码


	public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
        //往页面上传值
		String mess="";
	    SmartUpload su = new SmartUpload();     

	    try {   
	    //初始化操作	
	    su.initialize(this.getServletConfig(),request,response);   
	    su.upload(); 
	    com.jspsmart.upload.File file = su.getFiles().getFile(0);
        //获得上传的文件另存的路径
	    String uploadPath=request.getParameter("uploadPath");
	    //创建保存上传文件的文件夹
	    java.io.File f = new File(uploadPath) ;
		if(!f.exists()){   
		 f.mkdir();
		}
	    file.saveAs(file.getFileName());
	      mess="{'success':true,'message':'上传成功'}";
	    }
	    catch(Exception e){
		   e.printStackTrace();
		   mess="{'success':true,'message':'上传失败'}";
	    }

	    PrintWriter pw=response.getWriter();
		
		System.out.println(mess);
		pw.println(mess);
		pw.flush();
		pw.close();
	}   



文件上传的后台代码与普通的JSP+JAVABEAN+SERVLET上传操作几乎没有改动,大家只需要把前台的上传功能做好就OK了

本人也是刚开始学习ExtJs,参看了很多的资料,最后附上官方的实例demo
http://dev.sencha.com/deploy/dev/examples/form/file-upload.html
分享到:
评论
3 楼 雨的印迹 2014-07-18  
用了感觉很棒,但是汉化怎么搞?
2 楼 另一花生 2014-02-27  
非常感谢楼主的例子!
1 楼 xieweiting 2012-05-09  
我的不对啊,

相关推荐

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    本篇文章将详细介绍如何针对ExtJS 3.x版本定制和优化一个名为`UploadDialog`的多文件上传组件。 #### 关键技术点 1. **ExtJS 3.x兼容性** - 在ExtJS 2.x版本中实现的多文件上传功能通常无法直接应用于3.x版本。 ...

    extjs.ux.uploaddialog

    总之,`Ext.ux.UploadDialog`是一个强大且易于使用的文件上传解决方案,它结合了ExtJS的灵活性和易用性,为开发者提供了构建高效、用户友好的文件上传功能。无论是在企业级应用还是个人项目中,它都是一个值得考虑的...

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

    在前端,ExtJS 3.x提供了`UploadDialog`组件,用于实现多文件上传。这个组件通常包含一个文件选择器,用户可以选取多个文件,然后通过异步方式提交到服务器。在`UploadDialog`中,我们可以设置监听事件来跟踪文件...

    Ext.ux.UploadDialog.zip

    通过"UploadDialog"这个压缩包,你可以获取到EXTjs的上传对话框组件,将其整合到你的项目中,快速实现文件上传功能,提升应用的交互性和功能完整性。记得在实际使用时,根据项目的具体需求对UploadDialog进行适当的...

    使用ExtJs的插件UploadDialog+struts2.0实现多文件上传

    在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...

    UploadDialog3_x 下载

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

    struts+extjs实现UploadDialog

    总的来说,"struts+extjs实现UploadDialog"涉及到的技术点包括Struts的MVC架构、文件上传处理、ExtJS的组件模型、Ajax通信以及前后端交互的协调。理解并掌握这些知识点对于开发高效、用户体验良好的Web应用至关重要...

    Ext UploadDialog For Ext3.2.1 附使用示例

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

    ext 多文件上传控件 Ext.ux.UploadDialog 使用中的问题

    本文将深入探讨“ext多文件上传控件Ext.ux.UploadDialog”的使用方法及其常见问题。该控件作为ExtJS库的一个扩展,为用户提供了一种方便的多文件选择和上传的界面。 首先,Ext.ux.UploadDialog是一个基于ExtJS框架...

    jSP+EXTJS实现upload

    在IT行业中,网页开发经常会遇到文件上传的需求,而"jSP+EXTJS实现upload UploadDialog"就是一种常见的解决方法。这个话题主要涵盖了两个关键部分:JavaServer Pages (JSP) 和 ExtJS,它们共同用于创建一个具有文件...

    Ext.ux.UploadDialog批量上传文件实例

    Ext.ux.UploadDialog批量上传文件实例是一个基于ExtJS组件库扩展插件的文件上传解决方案,主要针对需要一次性处理多个文件上传的应用场景。ExtJS是一个强大的JavaScript框架,它提供了丰富的用户界面组件,而Ext.ux....

    ExtJS upload file

    在Web开发中,文件上传功能是常见的需求之一,而ExtJS 提供了丰富的组件和API来实现这一功能。本实例聚焦于利用ExtJS进行文件上传操作,结合了JavaScript、Apache服务器以及两个关键的Java库:Commons IO和Commons ...

    EXt3 的文件上传

    "Ext.ux.UploadDialog3.0"标签表明这是一个基于EXT(ExtJS)框架的文件上传插件,ExtJS是Sencha公司开发的一个用于构建富互联网应用(RIA)的JavaScript库。UploadDialog组件通常提供一个用户友好的界面,允许用户...

    Ext文件上传完整包

    "UploadDialog"这个名字暗示了一个专门用于文件上传的对话框组件。这个组件可能包含了文件选择、预览、上传控制、进度反馈等功能。它可能利用了HTML5的File API来处理文件选择和上传,同时也可能使用Ajax技术实现...

    UploadDialog

    综上所述,"UploadDialog"是一个使用ExtJS创建的无插件多文件上传对话框,它结合了HTML5 File API、ExtJS组件模型和异步传输技术,为用户提供了一种便捷且高度可定制的文件上传解决方案。在实际项目中,开发者可以...

    Ext.ux.UploadDialog

    Ext.ux.UploadDialog是Ext 2.0框架中的一个扩展组件,主要用于实现用户友好的文件上传功能。在Web开发中,文件上传是一个常见的需求,而ExtJS作为一个强大的JavaScript库,提供了丰富的组件和功能来帮助开发者构建...

    ExtJsUploadDialog结合Ftp上传

    Ext.ux.UploadDialog是一个第三方扩展,它为ExtJs提供了一个交互式的文件上传对话框,而FTP则是一种广泛用于在网络上进行文件传输的标准协议。 1. **Ext.ux.UploadDialog**:这个组件是ExtJs生态系统中的一个插件,...

    EXT 3.0 文件上传对话框

    EXT3.0引入了UploadDialog组件,为开发者提供了一个优雅的解决方案,使得在Web应用中处理文件上传变得更加简单和直观。 UploadDialog.js是这个功能的核心文件,它包含了EXT3.0文件上传对话框的具体实现。这个组件...

    Ext.ux.UploadDialog下载及中文包(i18n)

    Ext.ux.UploadDialog是一款在ExtJS框架下使用的扩展组件,它提供了一种用户友好的文件上传界面和功能。这个组件通常被用于Web应用程序,让用户能够方便地上传文件到服务器,而无需离开当前页面或者打开新的浏览器...

Global site tag (gtag.js) - Google Analytics