2010-11-17 2 views
0

이제 서블릿으로 파일을 업로드하고 ProgressListener 클래스를 구현하여 진행 상황을 업데이트합니다. ProgressListener 정적 변수를 구현하는 클래스입니다. 변수를 객체로 이동시켜 각 사용자마다 고유하게 만듭니다.다중 사용자 환경에서 commons progress update를 사용하는 방법은 무엇입니까?

더 클래스 구현 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

필자는 bytesRead 및 totalBytes 로컬 속성을 만들므로 FileUploadProgressListener의 각 인스턴스에는 자체 데이터가 있습니다. 그런 다음 모든 인스턴스가 자신의 세션 변수를 갖도록 세션 변수에 해당 인스턴스를 저장하십시오.