最近在做一个资源共享的项目中,采用了Struts2.1.8+spring2.5.6+hibernate3.32的框架整合方式进行开发。在文件上传这块,因为需要实现文件
最近在做一个资源共享的项目中,采用了Struts2.1.8+spring2.5.6+hibernate3.32的框架整合方式进行开发。在文件上传这块,因为需要实现文件上传时显示进度条的功能,所以尝试了一下。怕以后忘记,先贴出来分享下。
要在上传文件时能显示进度条,首先需要实时的获知WEB服务端接收了多少字节,以及文件总大小,这里我们在页面上使用ajax技术每一秒向服务器发送一次请求来获得需要的实时上传信息。但是当我们使用struts2后怎么在服务端获得实时的上传大小呢?这里需要用到commons-fileupload中的progressListener接口,实现这个接口,然后再实现一个自己的解析器,并在解析器中添加自己实现的那个progressListener;然后再替换struts2自带的解析器(struts2自带的解析器类没有添加progressListener),然后就可以了。下面看看主要的代码(技术有限,如有不对之处,望不吝点解):
监听器:
import javax.servlet.Http.httpservletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.fileupload.ProgressListener;public class ResourceProgressListener implements ProgressListener { private HttpSession session; public ResourceProgressListener(HttpServletRequest request) { session = request.getSession(); ResourceFileUploadStatus newUploadStatus = new ResourceFileUploadStatus(); session.setAttribute("currentUploadStatus", newUploadStatus); } public void update(long readedBytes, long totalBytes, int currentItem) { ResourceFileUploadStatus status = (ResourceFileUploadStatus) session.getAttribute("currentUploadStatus"); status.setReadedBytes(readedBytes); status.setTotalBytes(totalBytes); status.setCurrentItem(currentItem); }}
--结束END--
本文标题: Struts2实现文件上传时显示进度条功能
本文链接: https://www.lsjlt.com/news/226508.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
2024-04-30
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0