现在我使用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;
}
}
任何建议或链接都会更加赞赏!!
谢谢!
答案 0 :(得分:1)
我会使bytesRead和totalBytes本地属性,因此FileUploadProgressListener的每个实例都有自己的数据。然后将该实例存储在会话变量中,以便每个用户都拥有自己的。