javascript 获取接口返回的二进制blob 数据,后再转为对应mime 文件

src/config/util.js

export default{

    blobTofile(res, filename = null) {
        const blob = new Blob([res.data], { type: res.headers['content-type'] });
        const blobURL = window.URL.createObjectURL(blob);
        const tempLink = document.createElement('a');
        tempLink.style.display = 'none';
        tempLink.href = blobURL;

        if (filename) {
          tempLink.setAttribute('download', filename);
        }
        tempLink.click()
        window.URL.revokeObjectURL(tempLink.href);
   }

}

axios  (注意 responseType="blob"  必须

export const trackingTpl = (data) => {
	return request('wms/order/tpl', 'get', data, false, 'blob');
};

@click="test"   test 方法

import  utils  from  '@/config/utils.js'

methods: {
    test() {
      trackingApi.trackingTpl().then(res => {
        console.log(res)
        utils.blobTofile(res)
      })
    }

}

最后:附上我的后端接口返回的数据格式,( 注意data 的类型是Blob, 很多小伙伴下载都打不开文件的,可能问题,就是返回的data 不是Blob)

 

 

你可能感兴趣的:(前端)