现在我正在使用 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 的每个实例都有自己的数据。然后将该实例存储在 session 变量中,以便每个用户都有自己的实例。
关于java - 如何使用公共(public)进度更新到多用户环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4210309/