1***@qq.com
1***@qq.com
  • 发布:2022-04-24 13:37
  • 更新:2024-06-03 09:16
  • 阅读:4640

uniapp app移动端能否通过后端返回的流文件数据进行下载保存至手机本地

分类:uni-app

后端接口返回流文件数据内容, 需要进行下载保存至手机本地, 一开始通过new Blob转文件并通过标签进行下载, 后发现uniapp不支持, 而后又新建了一个webview页面进行相同如上操作, 发现浏览器可进行下载, 而真机没有反应, 也尝试过使用renderjs, 发现也不行, 希望可以得到回复帮助, 谢谢!

2022-04-24 13:37 负责人:无 分享
已邀请:
FullStack

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

可以

小枫叶

小枫叶 - 外包接单加v:wlmk1234567 注明来意

可以让后台帮你生成到文件 然后转成 oss的链接 让他把链接返给你 你用uni.downfile下载

1***@qq.com

1***@qq.com -

解决了吗?

2***@qq.com

2***@qq.com

同求

  • 鸡排饭加个蛋

    plus.downloader.createDownload 已实现

    2023-03-22 15:04

  • j***@163.com

    回复 鸡排饭加个蛋: 能详细点说吗

    2023-06-06 18:14

  • 鸡排饭加个蛋

    回复 j***@163.com: https://juejin.cn/post/7242570945834156087#heading-3 可以看下我写的这个总结,代码应该可以直接复用

    2023-06-19 11:20

  • 小玉code

    让后端写的返回文件流接口改成 get 方式,然后用 uni.downloadFile({

    url: 'https://example.com/somefile.pdf',

    success: function (res) {

    var filePath = res.tempFilePath;

    uni.openDocument({

    filePath: filePath,

    showMenu: true,

    success: function (res) {

    console.log('打开文档成功');

    }

    });

    }

    });

    2024-05-08 09:09

j***@163.com

j***@163.com

实现了吗, 同求

2***@qq.com

2***@qq.com

同遇到这个问题,试了很多方法,最后暂时用打开外部浏览器方法下载了

小玉code

小玉code - 辛玉

让后端写的返回文件流接口改成 get 方式,然后用

uni.downloadFile({

    url: 'https://example.com/somefile.pdf',  

    success: function (res) {  

         var filePath = res.tempFilePath;  

        uni.openDocument({  

             filePath: filePath,  

            showMenu: true,  

          success: function (res) {  

      console.log('打开文档成功');  

}

});

}

});

1 秒前

f***@163.com

f***@163.com - 青春玩命的年代

这个我做过,给你提供一个思路,可以将获取文件流的请求封装成链接,用app打开浏览器,让浏览器去下载(灵感来源于一些游戏App在做版本更新时都不是在App内更新,都是自动跳转到浏览器去下载安装包)

套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

base64也可以使用如下的方式

var that = this;  
                let imageStr = 'data:image/png;base64,' + base64  

                // 保存到本地  
                let bitmap = new plus.nativeObj.Bitmap("test");  
                bitmap.loadBase64Data(imageStr, function() {  
                    console.log("加载Base64图片数据成功");  
                    var filePath = new Date().getTime() + Math.floor(Math.random() * 100);  
                    bitmap.save("_doc/" + filePath + ".png", {}, function(i) {  
                        console.log('保存图片成功:' + JSON.stringify(i));  

                        bitmap.clear();  
                    }, function(e) {  
                        onsole.log('保存图片失败:' + JSON.stringify(e));  
                        bitmap.clear();  
                    });  
                }, function() {  
                    console.log('加载Base64图片数据失败:' + JSON.stringify(e));  
                    bitmap.clear();  
                });

要回复问题请先登录注册