From 5298d1e0ecadb83a02111342a72dc3690b27a6ad Mon Sep 17 00:00:00 2001 From: Shazeb Ata <32903329+ataata107@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:53:58 +0530 Subject: [PATCH] Convert url to blob for large file size download (#1455) * Convert url to blob for large size download * Replaced var with let Co-authored-by: Harsh Khandeparkar <34770591+HarshKhandeparkar@users.noreply.github.com> Co-authored-by: Jeffrey Warren --- examples/lib/defaultHtmlStepUi.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/examples/lib/defaultHtmlStepUi.js b/examples/lib/defaultHtmlStepUi.js index d50caab3..50d6a1c4 100644 --- a/examples/lib/defaultHtmlStepUi.js +++ b/examples/lib/defaultHtmlStepUi.js @@ -339,12 +339,24 @@ function DefaultHtmlStepUi(_sequencer, options) { $stepAll('.download-btn').on('click', () => { + function dataURLtoBlob(dataurl) { + let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], + bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); + while(n--){ + u8arr[n] = bstr.charCodeAt(n); + } + return new Blob([u8arr], {type:mime}); + } + var element = document.createElement('a'); - element.setAttribute('href', step.output); + element.setAttribute('download', step.name + '.' + fileExtension(step.imgElement.src)); element.style.display = 'none'; document.body.appendChild(element); - + var blob = dataURLtoBlob(step.output); + var objurl = URL.createObjectURL(blob); + element.setAttribute('href', objurl); + element.click(); });