javascriptangularjssymfonycsvbase64

Download a CSV file in Javascript (or Symfony) from a Base64


I'm using a method to download a CSV file from a Base64.

var dlnk = document.getElementById("myDownloadButton");
dlnk.href = 'data:application/octet-stream;base64,' + myBase64;
dlnk.click();

It worked until I realized that when the base64 is too long, I have a problem. It will open a white page and it won't download my CSV file. I think it's because my base64 is too long.

Do you have an alternative in JavaScript or in Symfony 3?

Thank you


Solution

  • The solution:

    let csvContent = atob("YOUR BASE64");
    var blob = new Blob([csvContent], {type: "data:application/octet-stream;base64"});
    var url  = window.URL.createObjectURL(blob);
    // you need to precise a front-end button to have a name
    var dlnk = document.getElementById(nameFile);
    dlnk.href = url;
    dlnk.click();