B***@163.com
B***@163.com
  • 发布:2023-06-05 16:06
  • 更新:2023-06-05 18:08
  • 阅读:295

mui 5+app 通过base64字符串下载pdf文件,求助

分类:MUI

现在通过base64转bolb,然后在放到<a>标签上能弹出下载的提示,点击下载就会下载失败。

    function downloadByBase64STr(Base64STr, fileName) {  
                console.log(Base64STr)  

                var bstr = window.atob(Base64STr); //解码  
                var n = bstr.length;  
                var u8arr = new Uint8Array(n);  
                while (n--) {  
                    u8arr[n] = bstr.charCodeAt(n); //转二进制  
                }  
                var blob = new Blob([u8arr], {  
                    type: 'application/pdf'  
                });  
                           //用blob生成pdf文件,返回PDF文件  

                fuj.innerHTML = '<a href="' + window.URL.createObjectURL(blob) + '"  id="fuj_a">' +  fileName + '</a>';  
                    var link = document.createElement('a'); //a标签下载  
                    link.href = window.URL.createObjectURL(blob);  
                    console.info(link.href);  
                    link.download = fileName;  
                    link.click();  
                    window.URL.revokeObjectURL(link.href);  

            }
2023-06-05 16:06 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

if(mui.os.android){    
            var Base64 = plus.android.importClass("android.util.Base64");    
            var File = plus.android.importClass("java.io.File");    
            var FileOutputStream = plus.android.importClass("java.io.FileOutputStream");    
            var dir = new File(path);    
            if (!dir.exists()) dir.mkdirs();            
            try{    
                var out = new FileOutputStream(path+name);    
                var bytes = Base64.decode(base64Str.replace('data:audio/amr;base64,',''), Base64.DEFAULT);    
                out.write(bytes);     
                out.close();    
                callback && callback(name,extra);    
            }catch(e){    
                console.log(e.message);    
            }    
        }else if(mui.os.ios){    
            var NSData = plus.ios.importClass('NSData');    
            var nsData = new NSData();    
            nsData = nsData.initWithBase64EncodedStringoptions(base64Str,0);    
            nsData.plusCallMethod({writeToFile:path+name,atomically:true});    
            plus.ios.deleteObject(nsData);    
            callback && callback();     
        }       
  • B***@163.com (作者)

    您好,这个path应该是什么啊。

    2023-06-06 15:24

FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

要回复问题请先登录注册