123456789101112131415161718192021222324252627282930313233343536373839 |
- export function dataURItoBlob(dataURI) {
- // convert base64 to raw binary data held in a string
- // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
- var byteString = atob(dataURI.split(",")[1]);
- // separate out the mime component
- var mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0];
- // write the bytes of the string to an ArrayBuffer
- var ab = new ArrayBuffer(byteString.length);
- // create a view into the buffer
- var ia = new Uint8Array(ab);
- // set the bytes of the buffer to the correct values
- for (var i = 0; i < byteString.length; i++) {
- ia[i] = byteString.charCodeAt(i);
- }
- // write the ArrayBuffer to a blob, and you're done
- var blob = new Blob([ab], { type: mimeString });
- return blob;
- }
- export const saveFile = function (strData, filename) {
- var link = document.createElement("a");
- if (typeof link.download === "string") {
- document.body.appendChild(link); //Firefox requires the link to be in the body
- link.download = filename;
- link.href = strData;
- link.click();
- document.body.removeChild(link); //remove the link when done
- } else {
- location.replace(uri);
- }
- };
|