0

I have a REST API that will return a file in base64 string. I have already be able to convert it back to file data to let user download the file in client-side when click on the link. The code is as below:

if(link !== undefined && link !== null && link.trim() !== ""){
    var setting = [];
    var urlGet = link; //example: "../API/fileDownload?directory=AAA&filename=BBB.pdf";
    const httpGet = new XMLHttpRequest();
    httpGet.open('GET', urlGet, false);
    httpGet.send();
    var returnText = httpGet.responseText;
    var returnStatus = httpGet.status;
    if(returnStatus == "200"){
        setting = JSON.parse(returnText);
    }
    if(setting !== undefined && setting !== null ){
        var filename = setting.filename;
        var data = setting.data;
        var content = setting.content;
        
        var hiddenElement = document.createElement('a');
        hiddenElement.href = 'data:' + data + ';base64,' + content;
        hiddenElement.target = '_blank';
        
        //provide the name for the file to be downloaded
        hiddenElement.download = filename;
        hiddenElement.click();
    }
}

However, now, I was ask to add a function that will open the file in a pop-up if it is a pdf. Let ignore the check to see if the file is pdf (just assume all files will be pdf), can you help me change the above code to do this.

N.D.H.Vu
  • 127
  • 1
  • 16
  • Show what you tried til now. – Cesare Polonara Apr 25 '22 at 04:51
  • @kmoser: Thanks, I did see this solution (windows.open), but for some reason, completely not know how to process with it. After read the post again, it just happen to me that all I need to do is replace the url in "windowss.open" with what I put in "hiddenElement.href" above. Silly me. – N.D.H.Vu Apr 25 '22 at 05:05

0 Answers0