Base64 to Blob

Tags: Typescript, blob, base64, Aurelia

This is based on someone else's code but I've lost the link. If you recognise your work leave a comment. It's here because I converted it to Typescript for convenient inclusion in Aurelia projects.

  public base64ToBlob(b64Data: string, contentType: string = '', sliceSize = 512): Blob {
    let byteCharacters = atob(b64Data);
    let byteArrays = [];
    for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
      let slice = byteCharacters.slice(offset, offset + sliceSize);
      let byteNumbers = new Array(slice.length);
      for (let i = 0; i < slice.length; i++) {
        byteNumbers[i] = slice.charCodeAt(i);
      }
      let byteArray = new Uint8Array(byteNumbers);
      byteArrays.push(byteArray);
    }
    return new Blob(byteArrays, { type: contentType });
  }

No Comments