Skip to content

Instantly share code, notes, and snippets.

@andreyshuster
Last active September 22, 2019 10:37
Show Gist options
  • Save andreyshuster/8914286 to your computer and use it in GitHub Desktop.
Save andreyshuster/8914286 to your computer and use it in GitHub Desktop.
ajax download file with progress bar
var target = "file destination";
// check compartibility
// reset progress bar
$('.progress-bar').css('width', '0%').attr('aria-valuenow', 0);
var xhr=new XMLHttpRequest();
xhr.overrideMimeType('application/octet-stream');
xhr.open('GET', target, true);
xhr.responseType='arraybuffer';
xhr.send();
xhr.onprogress=function(e){
var value = e.loaded + "";
var prog = value[0] + value[1];
// update progress bar
$('.progress-bar').css('width', prog+'%').attr('aria-valuenow', prog);
};
xhr.onload=function(){
// fill progress bar
$('.progress-bar').css('width', '100%').attr('aria-valuenow', 100);
var resArray=new Uint8Array(xhr.response);
var blob=new Blob([resArray], {type: 'application/octet-stream'});
// add href attribute to target link
$("#readyLink").attr("href", URL.createObjectURL(blob));
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment