⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileuploadlistener.java

📁 利用AJAX控制上传文件进度,并生成进度条! 同时增加了新的实现方法,详细信息还请使用者自己体会
💻 JAVA
字号:
package com.bjinfotech.practice.ajax;

import org.apache.commons.fileupload.ProgressListener;
import org.apache.log4j.Logger;
import javax.servlet.http.HttpSession;

public class FileUploadListener implements ProgressListener{
	Logger logger=Logger.getLogger(FileUploadListener.class);
	private HttpSession session=null;
	
	public FileUploadListener(HttpSession session){
		this.session=session;
	}
	
	/**
	 * 更新状态
	 * @param pBytesRead 读取字节总数
	 * @param pContentLength 数据总长度
	 * @param pItems 当前正在被读取的field号
	 */
	public void update(long pBytesRead, long pContentLength, int pItems){
		FileUploadStatus fuploadStatus=BackGroundService.takeOutFileUploadStatusBean(this.session);
		logger.debug("当前正在处理第" + pItems+"个文件");
		fuploadStatus.setUploadTotalSize(pContentLength);
		//读取完成
	    if (pContentLength == -1) {
	       logger.debug("读取完成:读取了 " + pBytesRead + " bytes.");
	       fuploadStatus.setStatus("完成对" + pItems+"个文件的读取:读取了 " + pBytesRead + " bytes.");
	       fuploadStatus.setReadTotalSize(pBytesRead);
	       fuploadStatus.setSuccessUploadFileCount(pItems);
	       fuploadStatus.setProcessEndTime(System.currentTimeMillis());
	       fuploadStatus.setProcessRunningTime(fuploadStatus.getProcessEndTime());
	    //读取中
	    } else {
	       logger.debug("读取进行中:已经读取了 " + pBytesRead + " / " + pContentLength+ " bytes.");
	       fuploadStatus.setStatus("当前正在处理第" + pItems+"个文件:已经读取了 " + pBytesRead + " / " + pContentLength+ " bytes.");
	       fuploadStatus.setReadTotalSize(pBytesRead);
	       fuploadStatus.setCurrentUploadFileNum(pItems);
	       fuploadStatus.setProcessRunningTime(System.currentTimeMillis());
	    }
	    BackGroundService.storeFileUploadStatusBean(this.session,fuploadStatus);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -