You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Björn Agel (JIRA)" <ji...@apache.org> on 2010/02/12 10:04:28 UTC
[jira] Created: (FILEUPLOAD-180) If ServletFileUpload.setSizeMax()
is set the values "bytesRead" and "contentLength" of the ProgressListeners
update()-method are ZERO
If ServletFileUpload.setSizeMax() is set the values "bytesRead" and "contentLength" of the ProgressListeners update()-method are ZERO
-------------------------------------------------------------------------------------------------------------------------------------
Key: FILEUPLOAD-180
URL: https://issues.apache.org/jira/browse/FILEUPLOAD-180
Project: Commons FileUpload
Issue Type: Bug
Affects Versions: 1.2, 1.2.1
Environment: Tomcat 6.0.24
Reporter: Björn Agel
I wrote a ProgressListener to visualize the upload of a file.
The Listener works as expected as long as the sizeMax-value of the ServletFileUpload class is not explicitly set.
If it is set the update()-method of the ProgressListener has ZERO-values for bytesRead and contentLength ... whats wrong here?
\\
\\
{code:title=UploadServlet.java|borderStyle=solid}
...
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding(request.getCharacterEncoding());
upload.setFileSizeMax(DEFAULT_SIZE_MAX);
// if sizeMax is set the update()-method has ZERO values for bytesRead and contentLength
//upload.setSizeMax(DEFAULT_SIZE_MAX);
FileUploadListener listener = new FileUploadListener(request);
upload.setProgressListener(listener);
List items = null;
try {
items = upload.parseRequest(request);
}
...
{code}
{code:title=FileUploadListener.java|borderStyle=solid}
public class FileUploadListener implements ProgressListener
{
private volatile long
bytesRead = 0L,
contentLength = -100L,
tenKBRead = -1L,
startTime = System.currentTimeMillis();
public FileUploadListener(HttpServletRequest request)
{
final HttpSession session = request.getSession();
session.setAttribute("FILE_UPLOAD_LISTENER", this);
}
public void update(long aBytesRead, long aContentLength, int anItem)
{
long tenKB = aBytesRead / 10240;
if (tenKBRead == tenKB)
return;
tenKBRead = tenKB;
bytesRead = aBytesRead;
if (contentLength != aContentLength)
contentLength = aContentLength;
}
public long getBytesRead()
{
return bytesRead;
}
public long getContentLength()
{
return contentLength;
}
public long getElapsedTimeInSeconds()
{
return (System.currentTimeMillis() - startTime) / 1000;
}
}
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.