论坛首页 Web前端技术论坛

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

浏览 9007 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-29  
类名: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
   发表时间:2007-08-02  
chen4w,非常感谢分享AttachField,这正是我手头项目所需的文件上传控件.经过1天的学习和消化,更加感觉到这个控件设计的优美之处.

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

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

0 请登录后投票
   发表时间:2007-08-02  
chen4w,非常感谢分享AttachField,这正是我手头项目所需的文件上传控件.经过1天的学习和消化,更加感觉到这个控件设计的优美之处.

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

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

0 请登录后投票
   发表时间:2007-08-02  
谢谢你的完善!
写这个组件的初衷就是将多附件的上传、删除、浏览封装在一起,这样可以提高项目实施的效率,简化实施代码
0 请登录后投票
   发表时间:2007-08-02  
chen4w,很高兴这么快就看到你的回复.

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

能帮我解决吗? 先谢了.
0 请登录后投票
   发表时间: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的 就没有了,不知道是哪个,谢谢
0 请登录后投票
   发表时间:2007-08-02  
这边也有一个上传功能
http://aariadne.com/uploadform/
0 请登录后投票
   发表时间: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)





0 请登录后投票
   发表时间:2007-08-02  
jiangzy:
你提及的应该是BService.java中的代码吧,这部分代码其实和AttachField本身功能没有任何关系,去掉相关代码就可以了。我上传的代码是从一个较大的工程中摘出来的,当时偷懒没有摘干净。
fangzhouxing:
最近一段时间没有功夫,bug更正之后会发布
0 请登录后投票
   发表时间:2007-08-30  
非常感谢各位知识共享,本人对 fangzhouxing 的divo用例进行了两点完善,希望对遇到同类问题的朋友有所帮助:
(1)UploadServlet.java的onSubmit()方法:解决了在以LINUX为服务器,客户端用IE浏览器上传文件时,提交的文件名包含客户端路径的问题。
(2)divo.js:该文件中也修改了一处,解决了浏览不同附件时的文档列表刷新问题。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics