美文网首页
前端下载文件操作

前端下载文件操作

作者: BuzzLightYearcc | 来源:发表于2020-08-07 15:20 被阅读0次

```javascript

getExportList({ }) {

        this.exportFlag = true;

        this.exportTxt = '生成报表中···';

        this.exportPercent = 50;

        let xhr = new XMLHttpRequest();

        let that = this;

        const downloadUrl = '/deviceManager/device/report_export';

        xhr.onload = function (event) {

            if ((xhr.status >= 200 && xhr.status < 300) || xhr.status < 300) {

                let type = xhr.getResponseHeader('Content-Type');

                console.log(type);

                //二进制文件流

                if (type === 'application/octet-stream') {

                    let blob = new Blob([this.response])

                    var a = document.createElement('a');

                    a.style.display = 'none';

                    var url = window.URL.createObjectURL(blob);

                    var filename = decodeURIComponent(xhr.getResponseHeader('Content-Disposition')).split('=')[1];

                    a.href = url;

                    a.download = filename;

                    document.body.appendChild(a);

                    a.click();

                    window.URL.revokeObjectURL(url);

                    document.body.removeChild(a);

                    that.exportPercent = 100;

                    that.message.create('success', '报表已生成');

                    that.exportClass = true;

                    setTimeout(() => {

                        that.exportFlag = false;

                    }, 1000)

                } else {

                    that.message.create('error', this.response.msg || '报表导出失败');

                    setTimeout(() => {

                        that.exportFlag = false;

                    }, 1000)

                }

            } else {

                that.message.create('error', this.response.msg || '报表导出失败');

                setTimeout(() => {

                    that.exportFlag = false;

                }, 1000)

            }

        };

        xhr.onprogress = (event) => {

            var divStatus = document.getElementById('status');

            console.log(event);

            if (event.lengthComputable) {

                console.log(event);

            }

        };

        xhr.open('get', downloadUrl, true);

        xhr.responseType = 'blob';

        xhr.send(null);

    };

```

重点是 xhr.responseType = 'blob';  要设置为blob  封装 保存的文件通过blob解析就会有问题

相关文章

  • 前端下载文件操作

    ```javascript getExportList({}){ this.exportFlag=true; th...

  • 文件上传与下载

    文件上传 前端页面 Action处理类 struts.xml 文件下载 前端页面 处理下载请求的action st...

  • js blob导出文件 文件下载 中文乱码的问题

    需求:后端文件以二进制流的形式返回给前端, 前端需要读取流文件实现文件下载。 场景:下载成功,文件乱码。 原因:与...

  • 前端文件下载

    最近做项目遇到要把文件放在前端项目中,然后点击下载完整代码: 先把文件放在静态目录src/assets里面 通过i...

  • wget下载数据

    下载单个文件 -nc: 继续下载中断的操作 下载目录下面所有文件 下载多个文件:

  • Vue-纯前端导出word文档

    在项目中,我们可以借助后端返回文件流实现文件下载。如果前端有数据,也可以借助前端框架进行下载。本文将介绍如何在前端...

  • Vue-纯前端导出word文档

    在项目中,我们可以借助后端返回文件流实现文件下载。如果前端有数据,也可以借助前端框架进行下载。本文将介绍如何在前端...

  • 前端下载文件无法打开

    前端下载文件无法打开 在开发过程中遇到下载功能,后端直接从服务器拉文件是可以打开的,前端通过接口下载的文件打开报错...

  • xlsx.js excel文件下载

    excel 文件的下载 前端 后端导出 excel

  • 前端下载文件

    前端创建下载窗口 流文件下载 接口 如果返回的是网址

网友评论

      本文标题:前端下载文件操作

      本文链接:https://www.haomeiwen.com/subject/btifdktx.html