如何使用commons进度更新到多用户环境?

时间:2010-11-17 23:34:39

标签: java progress apache-commons-fileupload

现在我使用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;

    }
}

任何建议或链接都​​会更加赞赏!!

谢谢!

1 个答案:

答案 0 :(得分:1)

我会使bytesRead和totalBytes本地属性,因此FileUploadProgressListener的每个实例都有自己的数据。然后将该实例存储在会话变量中,以便每个用户都拥有自己的。