Following function is used to upload a file. Now I want to cancel file upload on button click. How to do this?
function submitForm(form) {
var loader = new Loader({showPgBar : true});
var progressBar = loader.progressBar();
loader.show();
var data = new FormData(form);
data.append("category", "MEDIA_FILE");
var csrf_headerName = $("meta[name='_csrf_header']").attr("content");
var csrf_paramValue = $("meta[name='_csrf']").attr("content");
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: URI.file.singleFileUploadUrl(),
data: data,
beforeSend: function (request) {
request.setRequestHeader(csrf_headerName, csrf_paramValue);
},
processData: false,
contentType: false,
cache: false,
timeout: 1740000, //29 minutes
success: function (data) {
loader.hide();
mediaFileMetaDataSave(data ,null);
document.getElementById('media-file-form').reset();
},
xhr: function(){
var xhr = $.ajaxSettings.xhr() ;
xhr.upload.onprogress = function(data){
progressBar.updateStatus(data);
};
return xhr ;
},
error: function (e) {
loader.hide();
toastr.error('Error has occurred while uploading the media file.');
}
});
}
Edit:
I have called the xhr.abort() like below. Although I clicked the cancelFileUpload button nothing happens. I have checked the console in browser. No errors appeared as well.
xhr: function(){
var xhr = $.ajaxSettings.xhr() ;
xhr.upload.onprogress = function(data){
document.getElementById("cancelFileUpload").onClick = function(){
xhr.abort();
}
progressBar.updateStatus(data);
};
return xhr ;
},
Why is this not working?