现在,我正在使用servlet上传文件,并通过实现ProgressListener类来更新进度。实现ProgressListener静态变量的类。我应如何将变量移动到对象上并使其对每个用户唯一。
实现ProgressListener的类:
package com.pricar.uploadlistener.pack;
import java.text.NumberFormat;
import org.apache.commons.fileupload.ProgressListener;
public class FileUploadProgressListener implements ProgressListener {
public FileUploadProgressListener() {
}
private static long bytesRead;
private static long totalBytes;
public void getFileUploadStatus() {
String per = NumberFormat.getPercentInstance().format( (double) bytesRead / (double) totalBytes );
String statusStr = (per.substring(0, per.length() - 1));
int status = Integer.parseInt(statusStr);
}
/* (non-Javadoc)
* @see org.apache.commons.fileupload.ProgressListener#update(long, long, int)
*/
public void update(long pBytesRead, long pContentLength, int pItems) {
bytesRead = pBytesRead;
totalBytes = pContentLength;
}
}
任何建议或链接将更感激!
谢谢!!
最佳答案
我将使bytesRead和totalBytes成为本地属性,因此FileUploadProgressListener的每个实例都有其自己的数据。然后将该实例存储在会话变量中,以便每个用户都有自己的实例。