后端返回文件流,前端处理进行文件下载

后端返回文件流,前端需要对返回的文件流处理进行文件下载
先是发送请求的时候声明返回blob格式

url: '',(你的地址)
method: 'post',
data: params,
responseType: 'blob'  (这里很重要)

然后将返回的数据传给downLoadXls方法里,第二个形参是文件名称,然后系统就开始自动下载了~

function downLoadXls(data, filename) {
        //var blob = new Blob([data], {type: 'application/vnd.ms-excel'})接收的是blob,若接收的是文件流,需要转化一下
    if (typeof window.chrome !== 'undefined') {
        // Chrome version
        var link = document.createElement('a');
        link.href = window.URL.createObjectURL(data);
        link.download = filename;
        link.click();
    } else if (typeof window.navigator.msSaveBlob !== 'undefined') {
        // IE version
        var blob = new Blob([data], { type: 'application/force-download' });
        window.navigator.msSaveBlob(blob, filename);
    } else {
        // Firefox version
        var file = new File([data], filename, { type: 'application/force-download' });
        window.open(URL.createObjectURL(file));
    }
}

你可能感兴趣的:(前端原生,vue)