`
zha_zi
  • 浏览: 594058 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

extjs文件上传组件UploadDialog的用法

阅读更多

     项目中有一个页面的功能需要用到文件上传,文件上传以前做的非常多了,这次换成了extjs做的前台,本以为应该没有什么问题,谁料到,做的时候发现是问题多多

    总结了一下一共下列几点

1:extjs官方并不提供文件上传的组件,所以要借助第三方的插件去实现文件上传的功能,这里说的并不是用extjs不能做文件上传,而是不能较好的实现文件上传,网上提供可选择的组件不多,目前较多的是使用Ext.ux.UploadDialog.Dialog这个玩意

把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>

网上说的引入文件乱七八糟,可以是因为插件的版本不太一样,我用的是在官方下载的,我的extjs的开发包是2.2版本跟这个组件兼容是没有问题的

2:组件的使用

 var dialog = new Ext.ux.UploadDialog.Dialog(null, {  
               autoCreate: true,  
               closable: true,  
               collapsible: false,  
               draggable: true,  
               minWidth: 400,        
               minHeight: 200,  
               width: 400,  
               height: 350,  
              permitted_extensions:['JPG','jpg','jpeg','JPEG','GIF','gif'],  
              proxyDrag: true,  
              resizable: true,  
              constraintoviewport: true,  
              title: '文件上传',  
              url: 't_file_upload.php',  
              reset_on_hide: false,  
              allow_close_on_upload: true  
            });  
	 dialog.show();

 3:servlet代码

  File tmp = new File("d:/tmp_common_apache");
		    File saveDir = new File("d:/iocommon");
		    tmp.mkdir();
		    saveDir.mkdir();
		    
		    if (ServletFileUpload.isMultipartContent(event.getRequest()))
		    {
		      DiskFileItemFactory dfif = new DiskFileItemFactory();
		      dfif.setRepository(tmp);
		      dfif.setSizeThreshold(1073741824);
		      ServletFileUpload sfu = new ServletFileUpload();
		     
		      sfu.setSizeMax(1073741824L);
		      try
		      {
		        FileItemIterator fii = sfu.getItemIterator(event.getRequest());
		        while (fii.hasNext())
		        {
		          FileItemStream fis = fii.next();
		          if ((fis.isFormField()) || (fis.getName().length() <= 0))
		            continue;
		          System.out.println(fis.getName().substring(fis.getName().lastIndexOf(".")));
		          String idd = fis.getName().substring(fis.getName().lastIndexOf("."));
		          int index = fis.getName().lastIndexOf("\\");
		          String newFileName = fis.getName().substring(index + 1);

		          String fileName = fis.getName().substring(fis.getName().lastIndexOf("."));
		          System.out.println(newFileName + "~~~~~~");

		          BufferedInputStream in = new BufferedInputStream(fis.openStream());
		          BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File("d:/iocommon/" + newFileName)));

		          Streams.copy(in, out, true);
		        }
		      }
		      catch (FileUploadException e)
		      {
		        e.printStackTrace();
		      }
		    }
		    else
		    {
		    	 
		    }
		    return "{success:true,message:'成功'}";

 4:使用时其他问题 

  a:多文件上传的疑惑

  办法:这个组件可以多文件上传的,但是我们在写servlet的时候会非常奇怪,同时提交多个文件如何处理,其实看是多问的提交不过是单个文件的重复提交,所以传统的文件上传的servlet是不用任何修改就可以执行的,我这里使用的是apache的一个上传组件

 b:文件上传成功但是页面显示确实失败

 办法:这种问题是是返回的数据问题“{success:true,message:'成功'}”返回这样的一个json字符串就可以正确的显示结果了,这种格式是这个组件约定好的

 c : 进度条不准确

 办法: 这个没有什么办法,这个进度条,我感觉就是一个摆设,不能正确的显示目前文件上传的状态

 

  • 大小: 51.5 KB
分享到:
评论

相关推荐

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

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

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

    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,它们共同用于创建一个具有文件...

    EXt3 的文件上传

    4. **JavaScript编程**:掌握ExtJS库的基本用法,包括组件模型、事件驱动和数据绑定,以及如何创建和配置UploadDialog组件。 5. **Web安全**:了解文件上传可能带来的安全风险,如文件类型检查、大小限制、防止目录...

    UploadDialog

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

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

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

    如何在服务器端 读取Ext.ux.UploadDialog上传的文件?

    Ext.ux.UploadDialog 是一个 ExtJS 框架的扩展组件,它提供了一个友好的用户界面来处理文件上传。在服务器端,我们需要正确解析接收到的请求,以便能够读取并处理上传的文件。在 Java 环境下,Apache Commons ...

    ExtJs部署及使用方法

    - `b2b/Ext.ux.UploadDialog.js`: 文件上传对话框组件。 ##### 2.1 页面布局实现 在实际应用中,可以通过ExtJs的布局管理器来实现页面的布局设计。下面是一个简单的例子,展示了如何使用ExtJs的BorderLayout布局...

    精通JS脚本之ExtJS框架.part2.rar

    6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 6.3.3 常见的“操控DOM”方法 6.3.4 常见的“尺寸大小/定位”方法 6.3.5 常见的“特效动画”方法 6.3.6 DomHelper简介 ...

    精通JS脚本之ExtJS框架.part1.rar

    6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 6.3.3 常见的“操控DOM”方法 6.3.4 常见的“尺寸大小/定位”方法 6.3.5 常见的“特效动画”方法 6.3.6 DomHelper简介 ...

    项目涉及到的文件收集_未整理

    8. **UploadDialog**:这可能是一个文件上传对话框的实现,常见于GUI应用中,用户通过对话框选择文件进行上传。可能涉及到的技术有Qt、wxWidgets或Java Swing等桌面开发框架。 9. **Swfupload**:Swfupload是一个旧...

Global site tag (gtag.js) - Google Analytics