Как использовать общее обновление прогресса в многопользовательской среде? - PullRequest
0 голосов
/ 18 ноября 2010

Теперь я загружаю файлы с сервлетом и обновляю прогресс с реализацией класса 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 Ответ

1 голос
/ 18 ноября 2010

Я бы сделал атрибуты bytesRead и totalBytes локальными, поэтому каждый экземпляр FileUploadProgressListener имеет свои собственные данные. Затем сохраните этот экземпляр в переменной сеанса, чтобы каждый пользователь получил свой собственный.

...