Created
November 24, 2017 10:31
-
-
Save cguldogan/4b77f2c602b2781a04bad830f70c8df3 to your computer and use it in GitHub Desktop.
Download base 64 to blob file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function downloadBase64BlobFile(response) { | |
var blob = b64toBlob(response.data, 'application/vnd.ms-excel'); | |
if (blob != null && navigator.msSaveBlob) { | |
return navigator.msSaveBlob(blob, response.fileName); | |
} | |
var a = $('<a style=\'display: none;\'/>'); | |
var url = window.URL.createObjectURL(new Blob([blob], { | |
type: 'application/vnd.ms-excel', | |
target: '_self' | |
})); | |
a.attr('href', url); | |
a.attr('download', response.fileName); | |
$('body').append(a); | |
a[0].click(); | |
$window.URL.revokeObjectURL(url); | |
a.remove(); | |
} | |
function b64toBlob(b64Data, contentType, sliceSize) { | |
contentType = contentType || ''; | |
sliceSize = sliceSize || 512; | |
var byteCharacters = atob(b64Data); | |
var byteArrays = []; | |
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { | |
var slice = byteCharacters.slice(offset, offset + sliceSize); | |
var byteNumbers = new Array(slice.length); | |
for (var i = 0; i < slice.length; i++) { | |
byteNumbers[i] = slice.charCodeAt(i); | |
} | |
var byteArray = new Uint8Array(byteNumbers); | |
byteArrays.push(byteArray); | |
} | |
var blob = new Blob(byteArrays, {type: contentType}); | |
return blob; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment