下载文件前先调用接口校验

      <el-button class="el-button-reset" @click='downLoad' >下载</el-button>

   // 下载 浮层点击 确定 回调
        downLoad : function(min,max){
            const self = this;
            let param = {//校验接口需要传的参数
                fileType : this.fileType,
                uniqTag : this.docData.uniqTag,
                begin : min,
                end : max,
                bookFileCode:this.fileCode
            };
            this.ifDownloadOver(()=>{
                this.xiazaiDialogVis = false;
                this.iframeDownLoad(`/upload/download?uniqTag=${self.docData.uniqTag}&begin=${min}&end=${max}`);
                /*window.open(`/upload/download?uniqTag=${self.docData.uniqTag}&begin=${min}&end=${max}`);*/
            },param); 
        },
        // 判断是否超出下载量
        ifDownloadOver(callback,param){
            const self = this;
            ajax({//请求校验的接口
                url : '/user/judgeUserDownloads',
                data : param,
                success : (res) => {
                    if(res.success){
                        callback && callback();//通过校验开始下载
                    }else{
                        self.$message.warning(res.errorMsg);//没有通过校验返回错误提示
                    }
                }
            });
        },
        iframeDownLoad : function(url){
            let _this = this;
            let name = 'J_iframe' + (+ new Date());
            let iframe = $(`<iframe name="${name}" src="${url}" class="J_iframe hide" width="0" height="0"></iframe>`);
            iframe.on('load',function(){
                let body = window.frames[name].document;
            	let html = body.body.innerHTML;
            // 解决如果成功下载文件流 iframe会重定向到error页面 从而读取error页面的innrHTML , 通过---------- 判断是否后台给入的参数
            if(html.indexOf('----------') !== -1){
                let message = html.split('----------')[1];
                _this.$message.error(message);
            }
            });
            $('body').append(iframe);
        },

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值