前端接收下载后端文件流


说明:
这里是接收excel流的示例,故属性为type: 'application/vnd.ms-excel',最重要的是responseType要设置为blob.
另外使用ajax是不行的,blob类型返回值无法解析,所以即使成功了也无法进入success回调。自己可以试一下,加深印象。

配套后端代码地址:hutool工具包实现的导出实体到excel功能

// 导出excel数据表
function exportExcel(url, param, fileName) {
    url = baseURL + url;
    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);
    xhr.responseType = "blob";
    xhr.onload = function() {
        if (this.status === 200) {
            var blob = new Blob([this.response], {
                type: 'application/vnd.ms-excel'
            });
            var reader = new FileReader();
            reader.readAsDataURL(blob);
            reader.onload = function(e) {
                var a = document.createElement('a');
                a.download = fileName;
                a.href = URL.createObjectURL(blob);
                $('body').append(a);
                a.click();
            }
        } else {
            alert("下载失败");
        }
    };
    xhr.send(JSON.stringify(param));
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM