`

Ext的form类型扩展(二)——AttachField

阅读更多

类名:Ext.form.AttachField
扩展自:Ext.form.TriggerField
功能描述:能够处理多个附件的本地上传、删除、浏览,支持进度显示
如何部署:
-------------s端----------------------
预备工作:建立Web工程,增加dwr支持
1.将附件源码net.bar的java类加入你的Web工程
2.在web.xml加入以下定义
 <servlet><init-param>

xml 代码
 
  1.     <servlet>  
  2.         <servlet-name>fileupload</servlet-name>  
  3.     <servlet-class>net.bat.upload.uploadServlet</servlet-class>  
  4.     <load-on-startup>1</load-on-startup>  
  5.     <init-param>  
  6.         <param-name>path</param-name>  
  7.         <param-value>d:/upload/</param-value>  
  8.     </init-param>  
  9.     <init-param>  
  10.         <param-name>tpPath</param-name>  
  11.         <param-value>d:/</param-value>  
  12.     </init-param>  
  13. </servlet>  

       </init-param>
    </servlet>
3.将类TaskCenter通过dwr开放给B端,以支持进度显示
例如,我的dwr集成到spring下,相应的配置为
     <create creator="spring" javascript="TC"><include method="newTask"><include method="getTotal"><include method="getCur">

xml 代码
 
  1. <create creator="spring" javascript="TC">  
  2. param name="beanName" value="TaskCenter"/>  
  3.   <include method="newTask"/>  
  4.   <include method="getTotal"/>  
  5.   <include method="getCur"/>  
  6.   <include method="cancel"/>  
  7. </create>  


------------b端-----------------------
1.将附件form.rar展开到ext/examples/form/下
2.浏览http://host:port/yourapp/ext/examples/form/formext.html
其中photo为Attach类型</include></include></include></create>

  • net.rar (21.3 KB)
  • 描述: 服务端java源码
  • 下载次数: 445
  • form.rar (6.7 KB)
  • 描述: browser端js源码及demo
  • 下载次数: 523
  • 大小: 81.2 KB
分享到:
评论
14 楼 fangzhouxing 2007-09-22  
zyh2k,谢谢回复。

目前正在移植到Ext2.0-dev5,在IE下发现,第一次出现上传对话框正常,第二次触发图标,就不正常了,上传按钮总是不显示,查看dom, 发现上传对应的dom全部被删除了。
13 楼 zyh2k 2007-09-18  
fangzhouxing:
在IE中测试,发现下拉菜单宽度不能随着上传文件名拉长.FF下正常.

修正这个BUG需要在function onShowMenu(o)方法内加上this.autoWidth();
12 楼 chen4w 2007-09-06  
如果进度条显示进度增长,那么后台一定已经提交了.
这个例子已经是完整的例子,存在ie上传全路径文件名的bug,
前面的朋友已经修正了
11 楼 mahu981 2007-09-04  
兄弟,怎么我不能上传文件?
进度条能显示,但表单根本没提交!!!
fm.submit(); 好象没起作用
不知道是什么原因?
能发个完整的例子出来吗?非常感谢
10 楼 hzmdyz 2007-08-30  
非常感谢各位知识共享,本人对 fangzhouxing 的divo用例进行了两点完善,希望对遇到同类问题的朋友有所帮助:
(1)UploadServlet.java的onSubmit()方法:解决了在以LINUX为服务器,客户端用IE浏览器上传文件时,提交的文件名包含客户端路径的问题。
(2)divo.js:该文件中也修改了一处,解决了浏览不同附件时的文档列表刷新问题。
9 楼 chen4w 2007-08-02  
jiangzy:
你提及的应该是BService.java中的代码吧,这部分代码其实和AttachField本身功能没有任何关系,去掉相关代码就可以了。我上传的代码是从一个较大的工程中摘出来的,当时偷懒没有摘干净。
fangzhouxing:
最近一段时间没有功夫,bug更正之后会发布
8 楼 fangzhouxing 2007-08-02  
引用
兄弟我把你的单元引进了,但少了
import com.divo.core.service.TaskService;
import com.jsite.expresso.ext.util.Hz;
能不能上传个完整的代码呢,谢谢


TaskService 就是chen4w原作中的 TaskCenter类,我只修改了类名.
import com.jsite.expresso.ext.util.Hz 可以删除.

另外,我上传的文件中,divo.js中倒数第13行:
if (this.getValue().length==0) {  

请修改为:
if (this.menu.items.items.length==3)





7 楼 jiangzy 2007-08-02  
这边也有一个上传功能
http://aariadne.com/uploadform/
6 楼 jiangzy 2007-08-02  
fangzhouxing:不知道怎么才能联系到你。
5 楼 jiangzy 2007-08-02  
fangzhouxing:
兄弟我把你的单元引进了,但少了
import com.divo.core.service.TaskService;
import com.jsite.expresso.ext.util.Hz;
能不能上传个完整的代码呢,谢谢

chen4w:
看了你的程序,看到
org.hibernate.proxy.MapProxy
这个只有在hibernate3.1有,
在3.2的 就没有了,不知道是哪个,谢谢
4 楼 fangzhouxing 2007-08-02  
chen4w,很高兴这么快就看到你的回复.

刚才在IE中测试,发现下拉菜单宽度不能随着上传文件名拉长.FF下正常.

能帮我解决吗? 先谢了.
3 楼 chen4w 2007-08-02  
谢谢你的完善!
写这个组件的初衷就是将多附件的上传、删除、浏览封装在一起,这样可以提高项目实施的效率,简化实施代码
2 楼 fangzhouxing 2007-08-02  
chen4w,非常感谢分享AttachField,这正是我手头项目所需的文件上传控件.经过1天的学习和消化,更加感觉到这个控件设计的优美之处.

附件中是经过修改的若干程序,贡献出来,希望对大家有所帮助,也算是一种回馈吧.主要修改的地方如下:
(1)解决了中文文件名上传后乱码问题(参见UploadServlet.java).
(2)控件界面中文化.
(3)还没有上传文件时,下拉菜单中只有"上传"菜单项,并且自动展开.
(4)配置项disabled:true时,只能下载上传文件.
(5)下拉菜单中的文件列表,点击后变为自动下载.

使用过程中,要注意WEB-INF\lib中一定要添加commons-io-1.3.2.jar库.

1 楼 fangzhouxing 2007-08-02  
chen4w,非常感谢分享AttachField,这正是我手头项目所需的文件上传控件.经过1天的学习和消化,更加感觉到这个控件设计的优美之处.

附件中是经过修改的若干程序,贡献出来,希望对大家有所帮助,也算是一种回馈吧.主要修改的地方如下:
(1)解决了中文文件名上传后乱码问题(参见UploadServlet.java).
(2)控件界面中文化.
(3)还没有上传文件时,下拉菜单中只有"上传"菜单项,并且自动展开.
(4)配置项disabled:true时,只能下载上传文件.
(5)下拉菜单中的文件列表,点击后变为自动下载.

使用过程中,要注意WEB-INF\lib中一定要添加commons-io-1.3.2.jar库.

相关推荐

    Ext Form全攻略

    Ext Form全攻略 Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略

    Ext.form表单中各种属性应用详解

    **Ext.form.NumberField** 是 **Ext.form.TextField** 的一个扩展,它专为处理数字输入而设计,提供了一系列与数值相关的配置选项。 - **allowDecimals**: 类型为 `Boolean`,决定是否允许输入小数,默认为 `true`...

    EXT.form组件

    在EXT JS中,表单组件不仅包含基本的输入字段,还支持复杂的输入类型和验证机制。 1. `form`:`Ext.FormPanel`是EXT JS中的表单面板,它是一个容器,可以容纳各种表单字段和其他组件。表单面板允许你定义布局、提交...

    ext form小例子

    - 扩展Vtype:开发者可以通过`Ext.form.field.VTypes.add`方法来添加新的验证类型,比如自定义电话号码验证或身份证号验证。 - 示例:`Ext.form.field.VTypes.add('phone', /^\d{11}$/);`,这将添加一个新验证类型...

    ext form gridpanel

    "Ext Form GridPanel"是Ext JS库中的一个重要组件,它结合了表格(Grid)和表单(Form)的功能,提供了一种强大而灵活的方式来显示和编辑数据。在Web应用程序开发中,这种组件常用于数据录入和展示,尤其适用于处理...

    ext form 例子

    ext form 例子,有输入框,选择框,下拉框,复选框,日历等的复杂ExtJS例子

    EXT dojochina文本框示例Ext.form.TextField.rar

    8. **组合框模式**:`Ext.form.TextField`还可以扩展为`Ext.form.ComboBox`,实现下拉选择功能,这在需要用户从预定义选项中选择时非常有用。 在压缩包中的`Ext.form.TextField`文件夹,很可能是包含了一个或者多个...

    Ext2.0 form使用实例的例程

    在这个“Ext2.0 form使用实例的例程”中,我们将深入探讨Ext 2.0的表单(form)组件及其应用。 表单在任何应用程序中都扮演着至关重要的角色,用于收集和验证用户输入的数据。Ext 2.0的表单组件提供了一整套完整的...

    Ext 添加功能form表单实例

    根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    Ext form_load

    在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...

    EXT 自定义控件扩展

    通过EXT自定义控件扩展,开发者可以进一步拓展这些基础控件的功能,或者创建全新的控件类型,以满足项目中的特殊需求。以下是一些关于EXT自定义控件扩展的关键知识点: 1. **类继承**:EXT支持基于面向对象的编程,...

    ext4-util源代码——制作make_ext4fs和simg2img工具

    在Android系统中,对设备进行刷机或者系统更新时,经常需要处理ext4文件系统。本文将深入探讨如何使用`ext4-utils`工具集来创建`make_ext4fs`和`simg2img`这两个关键工具,这对于理解Android系统底层工作原理以及...

    EXT异步提交FORM表单

    #### 二、EXT异步提交FORM表单的基本原理与实现 ##### 2.1 基本原理 EXT异步提交FORM表单的核心是通过Ajax技术实现表单数据的后台提交,而无需刷新整个页面。这种方式的主要优点在于能够提供更加流畅的用户交互...

    EXT制作的FORM,可以与Servlet进行交互

    EXT form通常由`Ext.form.Panel`或者`Ext.form.FieldSet`构建,其中包含各种字段如文本框、复选框、下拉框等。每个字段都有自己的配置选项,如`fieldLabel`(字段标签)、`name`(标识符)等。通过这些配置,我们...

    Ext下拉列表扩展lovcombo

    EXT下拉列表扩展LOVCombo(LovCombo)是一种特殊类型的下拉列表,它不仅提供传统的单选选项,还支持多选,通过复选框的形式来实现。这种组件在数据录入、筛选和配置场景中非常常见,因为它可以方便地让用户从多个...

    ext2文件扩展属性讲解[借鉴].pdf

    EXT2文件系统是Linux操作系统中广泛使用的文件系统之一,它具有丰富的安全特性,其中包括扩展属性(attribute)。这些属性为系统管理员提供了额外的控制手段,以增强文件和目录的安全性及完整性。本文主要介绍EXT2...

    Ext Form 示例

    总结起来,Ext Form 提供了一套强大的工具来创建复杂的表单界面,包括各种字段类型、验证机制、布局选项和按钮行为。通过熟练掌握 Ext Form 的使用,开发者可以构建出用户体验良好、功能完善的交互式表单,提高Web...

    Ext继承和扩展写的例子。

    在这个特定的例子中,我们关注的是"Ext继承和扩展",这是Ext JS中两个核心的概念,它们对于理解和创建自定义组件至关重要。 1. **Ext继承**: 在面向对象编程中,继承是类之间的一种关系,允许一个类(子类或派生...

    Ext继承和扩展

    **二、Ext扩展** ExtJS中的"扩展"通常指的是`Ext.override()`方法,它用于给现有的类添加新的方法或覆盖原有的方法,而无需创建新的类。这种机制在不改变原有类结构的情况下,提供了增强或定制已有功能的能力。 ...

Global site tag (gtag.js) - Google Analytics