FileReader文件下载

此篇博客介绍了如何使用AJAX技术通过两次请求实现文件下载,首先获取文件令牌,然后根据不同文件类型转换为Blob对象并通过FileReader读取并触发下载。重点在于处理.docx和.xls文件的转换及下载操作。
摘要由CSDN通过智能技术生成
function jumpDownloadInfo(ele){
    var fileId = $(ele).attr('fileId');
    var originalFileName = $(ele).attr('originalFileName');
    var type = $(ele).attr('type');
    $.ajax({
        url:url1,
        type:'get', 
        success:function(data){
            if(data.success){
                var tokenCont = data.message;
                $.ajax({
                    url:url2+fileId,
                    type:'get', 
                    beforeSend: function (request) {
                        request.setRequestHeader("Authorization", tokenCont);
                    },
                    xhrFields: { responseType: 'blob' },
                    success:function(data){
                        if(data){
                            if(type == '.docx' || type == '.doc'){
                                var blob =new Blob([data], {type: 'application/msword'});  
                            }
                            if(type == '.xls' || type == '.xlsx'){
                                var blob =new Blob([data], {type: 'application/vnd.ms-excel'});  
                            }
                            
                            // FileReader主要用于将文件内容读入内存
                            var reader = new FileReader();
                            reader.readAsDataURL(blob);
                            console.log(reader)
                            
                            // onload当读取操作成功完成时调用
                            reader.onload = function(e) {
                              
                                // 获取文件名fileName
                                var a = document.createElement('a');
                                // 获取文件名fileName
                                a.download = originalFileName;
                                a.href = e.target.result;
                             

                                document.body.appendChild(a);
                                a.click();
                                document.body.removeChild(a);
                               
                            }
                        }
                    }
                })
               

            }else{
                
            }
        }
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值