繁体   English   中英

如何在 JavaScript 中从服务器接收字节数组并下载为 pdf

[英]How to Receive byte array from server in JavaScript and download as pdf

我正在尝试转换来自服务器的字节数组并以 pdf 格式下载,下载工作正常,但文件已损坏。

我正在尝试通过 JavaScript 执行此操作,并且正在使用 vue.js。

调用服务器并带来字节数组的函数:

function getManualAcademico(id) {
        const url = '/Sec/Ent/Get?d=';

        window.config.axios.get(url + id)
            .then(function (response) {
                var manualAcademico = response.data;

                Here i am calling the function sending the response data (array of bytes)
                DownloadPDF(manualAcademico);
            })
            .catch(function (error) {
                logInConsole(error);
            });
    }


    function DownloadPDF(manualAcademico) {
        var byteArray = new Uint8Array(manualAcademico.manual.$value);
        var a = window.document.createElement('a');
        a.href = window.URL.createObjectURL(new Blob([byteArray], { type: 'application/pdf' }));
        a.download = "ManualAluno.pdf";
        document.body.appendChild(a);
        a.click();
        document.body.removeChild(a);
    }

和服务器:


[EnableCors(origins: "*", headers: "*", methods: "*")]
        public IHttpActionResult Get(int Id)
        {
            return Ok(new
            {
                manual = SEC.Get(Id)
            });
        }

正在下载,但文件已损坏,知道吗?

谢谢。

尝试将responseType: 'arraybuffer'添加到请求中。

喜欢的东西:

window.config.axios.get({url: url + id, responseType: 'arraybuffer'})..  

在这种情况下

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM