You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Rob Tompkins (JIRA)" <ji...@apache.org> on 2017/06/05 14:01:04 UTC
[jira] [Closed] (FILEUPLOAD-180) If ServletFileUpload.setSizeMax()
is set the values "bytesRead" and "contentLength" of the ProgressListeners
update()-method are ZERO
[ https://issues.apache.org/jira/browse/FILEUPLOAD-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Tompkins closed FILEUPLOAD-180.
-----------------------------------
can't reproduce.
> 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
> Assignee: Simone Tripodi
> 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 was sent by Atlassian JIRA
(v6.3.15#6346)