19-10-27 node获取文件流转发给前端下载 node转发html请求

892 阅读1分钟

node获取文件流转发给前端下载

博客地址

// node端
router.post('/download', (req, res, next) => {
    request.get({
        url
    }).on('response', function(response) {
        // console.log(response.headers['content-type']) // 'image/png'
        // res.headers['content-type'] = response.headers['content-type']
        this.pipe(res)
      });
});
// 客户端
axios.post('/download', { url }, {
    headers: {
        // token等
    },
    responseType: 'blob'
})
.then(res => {
    // content-type可以统一设置为application/octet-stream,用filename的扩展名就会生成对应的文件
    let type = 'application/octet-stream';
    let URL = window.URL || window.webkitURL;
    let blob = new Blob([ res.data ], { type });
    let src = URL.createObjectURL(blob);
    let element = document.createElement('a');
    element.href = src;
    element.download = name;
    document.body.appendChild(element)
    element.click()
    element.remove();
})

node转发html请求

同上