当前位置: 首页 > 知识库问答 >
问题:

使用Angular从API下载pdf文件

甄霖
2023-03-14
Method: PUT 

Endpoint :

/application1/file/{filetype}/transactionType {
    "accountNumber":"344224433344333"
}

API将返回CSV/PDF/XLS类型的文件

问题:

共有1个答案

步博厚
2023-03-14

您需要将base64字符串转换为blob类型,然后进行下载/打印

function b64toBlob(b64Data,callback) {
    var contentType = 'application/pdf'; // put your file type here 
    var sliceSize = 512;
    b64Data = b64Data.replace(/^[^,]+,/, '');
    b64Data = b64Data.replace(/\s/g, '');
    var byteCharacters = window.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);
    }

    blob = new Blob(byteArrays, {
        type: contentType
    }); 

    callback(blob)
}

function downloadData(fileName,blob) {
    var a = document.createElement("a");
    var url = window.URL.createObjectURL(blob);

    document.body.appendChild(a);
    a.style = "display: none";
    a.href = url;
    a.download = fileName;
    a.click();
    window.URL.revokeObjectURL(url); 

}

// call it like this 

b64toBlob(base64string,function(data){
    function downloadData('sample.pdf',data)
})
 类似资料:
  • 问题内容: 我使用angular 6从rest api下载文件时遇到问题 后端方法 Mathod getHeader 我的角度服务 我已经使用PostMan尝试了我的API,它的单词完美,但是在Angular中,它给了我这个错误 问题答案: 尝试将内容类型添加到您的请求标头中。您可以尝试使用以下示例:

  • 问题内容: 我的API控制器返回的是csv文件,如下所示: 我的angularjs将发送和接收csv文件如下所示: 在chrome中,它将下载一个名为,但没有文件扩展名的文件。该文件的内容为。 在IE10中,没有下载任何内容。 我该怎么做才能解决此问题? 问题答案: 像这样尝试:

  • 我们有一个带有ASP.NET web API后端的angular客户端(angular 6)。 要求:在后端服务的UI上下载文件。文件可以是任何类型-PDF、图像、文档、excel文件、记事本。 执行情况如下: 角度编码如下: 服务 组件 我们在这里错过了什么?

  • 我的python3代码: 它将内容保存在metadat.pdf但那不是pdf的真正内容,它是这个html页面: 任何帮助,我如何才能保存文件的真实内容,而不是这个html?它应该是真正的pdf,当我下载它是jsut这个html页面 更新: 当我使用Python会话时,从服务器的一个NSWER:

  • 问题内容: 我想下载一个jQueryajax响应的pdf文件。Ajax响应包含pdf文件数据。。我的代码在下面给出,但是我总是得到一个空白的pdf。 问题答案: jQuery使用AJAX请求加载二进制数据时存在一些问题,因为它尚未实现某些HTML5 XHRv2功能 鉴于此,您拥有以下两种解决方案之一: 第一个解决方案是放弃JQuery并使用XMLHTTPRequest 与本地HTMLHTTPReq

  • 我可以通过以下服务下载pdf文件: 但是,当我运行该服务时,我得到了以下响应: %���� 10 obj 要打开pdf,我需要用第二个鼠标按钮点击响应链接: WS网址 然后选择“在新选项卡中打开”以打开pdf文件,看起来您正在运行该服务两次以获得一次pdf文件。 我想自动打开每个请求到WS的pdf文件。 这意味着每次您请求WS时,都应该返回直接在屏幕中打开的pdf文件。 有人能帮我修一下吗? Tk