tring remoteFilename) {
}
/**
* Notifies that a download has completed
*
* @param remoteFilename remote file name
*/
public void downloadCompleted(String connId, String remoteFilename) {
}
/**
* Notifies that an upload has started
*
* @param remoteFilename remote file name
*/
public void uploadStarted(String connId, String remoteFilename) {
EventListenerImpl.transferedbyte=0;
}
/**
* Notifies that an upload has completed
*
* @param remoteFilename remote file name
*/
public void uploadCompleted(String connId, String remoteFilename) {
EventListenerImpl.transferedbyte=0;
EventListenerImpl.totalfilesize=0;
EventListenerImpl.flag=-1;
}
public static long returnFlag()
{
return EventListenerImpl.flag;
}
public static long getTransferedbyte() {
return transferedbyte;
}
public static long getTotalfilesize() {
return totalfilesize;
}
}
FileUploadListener.java:
[java]
package liuzuochen.sample.upload;
import org.apache.commons.fileupload.ProgressListener;
import javax.servlet.http.HttpServletRequest;
public class FileUploadListener implements ProgressListener{
private HttpServletRequest request=null;
public FileUploadListener(HttpServletRequest request){
this.request=request;
}
public static int currentFileNum=0;
public static long totalFileSize=0;
/**
* 更新状态
*/
public void update(long pBytesRead, long pContentLength, int pItems){
FileUploadStatus statusBean= BackGroundService.getStatusBean(request);
statusBean.setUploadTotalSize(pContentLength);
EventListenerImpl.setTotalSize(pContentLength);
//读取完成
if (pContentLength == -1) {
statusBean.setStatus("完成对" + pItems +"个文件的读取:读取了 " + pBytesRead + " bytes.");
statusBean.setReadTotalSize(pBytesRead);
statusBean.setSuccessUploadFileCount(pItems);
statusBean.setProcessEndTime(System.currentTimeMillis());
statusBean.setProcessRunningTime(statusBean.getProcessEndTime());
statusBean.setUploadFlag("http");
//读取中
} else {
statusBean.setStatus("当前正在处理第" +(pItems+1)/3 +"个文件的客户端上传:已经读取了 " + pBytesRead + " / " + pContentLength+ " bytes.");
statusBean.setReadTotalSize(pBytesRead);
statusBean.setCurrentUploadFileNum((pItems+1)/3);
statusBean.setProcessRunningTime(System.currentTimeMillis());
statusBean.setUploadFlag("http");
}
BackGroundService.saveStatusBean(request,statusBean);
}
}
FileUploadStatus.java:
[java]
package liuzuochen.sample.upload;
import java.util.*;
public class FileUploadStatus {
//上传用户地址
private String uploadAddr;
//上传总量
private long uploadTotalSize = 0;
//读取上传总量
private long readTotalSize = 0;
//当前上传文件号
private int currentUploadFileNum = 0;