锁定老帖子 主题:关于Webwork下的文件上传进度条
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-18
java 代码
然后判断request是否是MultiPartRequestWrapper的一个实例,接下来初始化MultiPartRequestWrapper: java 代码
这里就通过判断用户在webwork.properties中定义的上传类型来构造MultiPartRequestWrapper, java 代码
假设用户定义了jakarta,这时候就通过JakartaMultiPartRequestMonitor来实现文件的上传(通过common-fileupload),同时获得文件的名称和类型等信息。 对于文件上传进度条,网上提供了一种给予servlet的解决办法,这种方式可以很方便的使用在Struts模式下的mvc架构的程序中,其中用到的类包可以在http://www.telio.be/blog/wp-content/uploads/2006/01/上找到,这种方式的实质是用到了dwr的回调方式。servlet的上传方式是通过下面的方式实现的: java 代码
而进度条是通过实现一个factory,来实现上传状态的回调。 webwork的拦截器实际已经将上传文件到临时目录封装在内部的类中,这样我们就无法构造factory来实现进度条的监控,给予以上的考虑,想了一个比较笨的办法,将MultiPartRequestWrapper修改一下,增加一个新的属性定义: java 代码
这样用户可以在webwork.properties中设置上传的模式为monitor,然后自己实现一个JakartaMultiPartRequestMonitor,在这个class中,将原有的factory实现方法通过带进度条的方式来实现,这样就能监控到servlet上传的进度。基本的实现思路就是这样的。下面将几个配置过程整理一下: 1、将修改的两个类添加到webwork2.2.x。jar中:MultiPartRequestWrapper。class和JakartaMultiPartRequestMonitor.class xml 代码
5、将下载的包中的resource文件夹拷贝到web目录下 <script src='/ugc/resources/js/upload.js'> </script> <ww:form action="doUpload" method="POST" enctype="multipart/form-data" onsubmit="startProgress()">这样webwork的文件上传进度条就可以实现了 以上的方法有两点感觉不足, 1、修改了webwork的jar,这样对以后的扩展不好,应该自己实现拦截器和request包装类 2、只实现了jakarta类型的文件上传,对于cos没有实现 欢迎大家指正和帮助!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-18
你这里又没有Link什么的 发代码最好使用bbcode模式
否则代码框里面会乱掉的 |
|
返回顶楼 | |
发表时间:2007-05-18
blog上发过来的,没注意,修改了一下
|
|
返回顶楼 | |
发表时间:2007-05-18
感谢楼主分享~
想请教一下,楼主怎么限制上传文件的大小呢? |
|
返回顶楼 | |
发表时间:2007-05-18
jarit 写道 感谢楼主分享~
想请教一下,楼主怎么限制上传文件的大小呢? webwork.multipart.maxSize=... |
|
返回顶楼 | |
发表时间:2007-05-18
看了一下webwork上传代码,maxSize要等文件上传完才作判断,请问楼主有办法在没有传完的情况下就中止继续上传么?谢谢
|
|
返回顶楼 | |
发表时间:2007-05-18
jarit 写道 看了一下webwork上传代码,maxSize要等文件上传完才作判断,请问楼主有办法在没有传完的情况下就中止继续上传么?谢谢
应用服务器可以设置POST的maxSize。 |
|
返回顶楼 | |
浏览 13928 次