从Sails端点下载文件

时间:2018-10-25 10:18:02

标签: javascript sails.js

我正在使用Sails构建服务器,该服务器应该从端点提取pdf内容并在响应中发送它。我该怎么做呢 到目前为止,这是我尝试过的:

fn: async function (inputs, exits) {
    const downloadLink = this.req.param('link');
    const pdf = (await axios.get(downloadLink, { responseType: 'blob' 
    })).data
    if (!downloadLink || !pdf) {
       throw 'not found';
    }
    this.res.attachment('abc').send(pdf);
    return exits.success();
}

但是,这似乎不起作用。我在chrome中安装了pdf.js,可显示pdf内容。当我尝试运行上面的代码时,它尝试打开文件,但最终显示错误“ pdf内容无效”

1 个答案:

答案 0 :(得分:0)

以下似乎可以解决问题:

fn: async function (inputs, exits) {
    const downloadLink = this.req.param('link');
    const pdf = (await axios.get(downloadLink, { responseType: 'arraybuffer' 
    })).data
    if (!downloadLink || !pdf) {
       throw 'not found';
    }
    this.res.attachment('abc.pdf').send(pdf);
    return exits.success();
}

请注意,响应类型从blob更改为arraybuffer