当前位置: 网学 > 编程文档 > JSP > 正文

利用DWR开发基于Ajax的文件上载portlet

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
oad() 方法(称为 uk.ac.dl.esc.gtg.myportlets.fileupload.FileUploadPortlet,包括在本文 下载 部分所提供的源文件中),通过调用 setProgressListener() 方法为 PortletFileUpload 设置过程侦听器,如 清单 1 所示: 



清单 1. 为文件上载包设置过程侦听器 


DiskFileItemFactory factory = new DiskFileItemFactory(); 
PortletFileUpload pfu = new PortletFileUpload(factory); 
pfu.setSizeMax(uploadMaxSize); // Maximum upload size
pfu.setProgressListener(new FileUploadProgressListener());
 


侦听器 FileUploadProgressListener(参见 清单 2)可实现 org.apache.commons.fileupload.ProgressListener 接口。update() 方法自动由 FileUpload 包调用以刷新有关所传输字节数的最新信息。在本文的实现中,每传输 10KB 数据则更新一次进度。这有助于防止更新进行得太频繁。 getFileUploadStatus() 方法用来计算当前文件上载进度,可由客户机通过 DWR 调用(在下一节讨论)。 


清单 2. 检索文件上载过程的文件上载侦听器 



package uk.ac.dl.esc.gtg.myportlets.fileupload; 

import java.text.NumberFormat; 

import org.apache.commons.fileupload.ProgressListener; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 

public class FileUploadProgressListener implements ProgressListener {
private static Log log = LogFactory.getLog(FileUploadProgressListener.class); 

private static long bytesTransferred = 0; 

private static long fileSize = -100; 

private long tenKBRead = -1; 

public FileUploadProgressListener() {
}

public String getFileUploadStatus() {
// per looks like 0% - 100%, remove % before submission
String per = NumberFormat.getPercentInstance().format(
(double) bytesTransferred / (double) fileSize); 
return per.substring(0, per.length() - 1); 
}

public void update(long bytesRead, long contentLength, int items) {
// update bytesTransferred and fileSize (if required) every 10 KB is
// read
long tenKB = bytesRead / 10240; 
if (tenKBRead == tenKB)
return; 
tenKBRead = tenKB; 

bytesTransferred = bytesRead; 
if (fileSize != contentLength)
fileSize = contentLength; 
}

}
 


文件上载过程的客户端检索 


服务器和客户间就文件上载过程的通信是通过使用 Ajax 实现的。我们选用 Direct Web Remoting (DWR) 来提供 portlet 中的 Ajax 支持。DWR 是一种面向 Java 开发人员的理想框架,可用来将 Ajax 引入&nb

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号