[
https://issues.apache.org/jira/browse/FILEUPLOAD-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simone Tripodi updated FILEUPLOAD-180:
--------------------------------------
Fix Version/s: (was: 1.3)
> 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.2
> Environment: Tomcat 6.0.24
> Reporter: Björn Agel
> Labels: Zero, bytesRead, contentLength, fileupload,
> progress_listener, sizeMax
>
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira