Here is some code on the javascript side for form-based uploads:
iframe.setAttribute('src', 'javascript:false;');
I’m using the code above to cancel an in-progress upload associated with an input element placed in an iframe.
I’m using the code below to cancel an in-progress upload sent via XHR:
myxhr.abort();
In both cases, no more bytes are sent to the servlet. The part I’m struggling with is on the servlet side. Currently, I can’t figure out a way for the servlet instance to determine if the user has cancelled the upload. This is critical, otherwise the servlet will go on and process the partially uploaded file as if it is valid.
How can I determine, via the HttpServletRequest, if a user has cancelled the upload?
The POST request with the data contains the
Content-Lengthheader which tells you the size of the data that is going to be uploaded.So when the data stops coming to your server and the size of the data received is less than expected – it would mean that the user (or some network glitch) has canceled the upload.