2***@qq.com
2***@qq.com
  • 发布:2022-07-19 17:06
  • 更新:2022-07-19 17:06
  • 阅读:2291

uni.getFileSystemManager().writeFile ios【报writeFile:fail base64 encode error】

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

第三方开发者工具版本号: 1.06.2207122

基础库版本号: 2.25.0

项目创建方式: HBuilderX

示例代码:
 this.base64 =this.url.replace(/^data:image\/\w+;base64,/, "");  
                    let filePath=wx.env.USER_DATA_PATH + '/certificate.png';  
                   var save = uni.getFileSystemManager()  
                   save.writeFile({  
                        filePath:filePath ,  //创建一个临时文件名  
                        data:this.base64,    //写入的文本或二进制数据  
                        encoding: 'base64',  //写入当前文件的字符编码  
                        success: res => {  
                            uni.saveImageToPhotosAlbum({  
                                filePath: filePath,  
                                success: function(res2) {  
                                    uni.showToast({  
                                        title: '保存成功,请从相册选择再分享',  
                                        icon:"none",  
                                        duration:5000  
                                    })  
                                },  
                                fail: function(err) {  
                                    console.log(err.errMsg);  
                                }  
                            })  
                        },  
                        fail: err => {  
                            console.log(err)  
                        }  
                    })

操作步骤:
                                   this.$http  
                    .customRequest(  
                        '/thirdApp/downloadFile',  
                        { resultId: item.id },  
                        'GET',  
                        undefined,  
                        'arraybuffer'  
                    )  
                    .then(res => {  
                        if (res) {  
                            const base64 = uni.arrayBufferToBase64(res);  
                            const imgSrc = 'data:image/png;base64,' + base64;  
                            uni.navigateTo({  
                                url: `/personPackge/pages/myOffice/filePreview?url=${imgSrc}`  
                            });  
                        } else {  
                            uni.showToast({  
                                title: '稍后下载',  
                                icon: 'none'  
                            });  
                        }  
                    })  
                    .catch(() => {  
                        console.log('导出失败');  
                    });  

                       saveImageToPhotosAlbum(){  
                 this.base64 =this.url.replace(/^data:image\/\w+;base64,/, "");  
                        let filePath=wx.env.USER_DATA_PATH + '/certificate.png';  
                       var save = uni.getFileSystemManager()  
                       save.writeFile({  
                            filePath:filePath ,  //创建一个临时文件名  
                            data:this.base64,    //写入的文本或二进制数据  
                            encoding: 'base64',  //写入当前文件的字符编码  
                            success: res => {  
                                uni.saveImageToPhotosAlbum({  
                                    filePath: filePath,  
                                    success: function(res2) {  
                                        uni.showToast({  
                                            title: '保存成功,请从相册选择再分享',  
                                            icon:"none",  
                                            duration:5000  
                                        })  
                                    },  
                                    fail: function(err) {  
                                        console.log(err.errMsg);  
                                    }  
                                })  
                            },  
                            fail: err => {  
                                console.log(err)  
                            }  
                        })  
                },  

预期结果:

苹果和安卓都可以保存png图片到手机相册

实际结果:

安卓手机正常的,但是苹果手机就某一条成功了,其他就都是报错writeFile:fail base64 encode error

bug描述:

将png图片保存到手机相册,安卓手机没有问题,苹果手机就只有某一条数据可以报错成功,其他是报错:writeFile:fail base64 encode error

2022-07-19 17:06 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复