1***@qq.com
1***@qq.com
  • 发布:2025-11-26 14:53
  • 更新:2025-11-26 16:42
  • 阅读:24

【报Bug】uni.chooseImage 在ios选择了相册获得地址临时地址,在plus.io.requestFileSystem要转base64中,报错提示:文件没有发现

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: iOS

手机系统版本号: iOS 17

手机厂商: 苹果

手机机型: 平板X8 Pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
uni.chooseImage({  
    count: 1,  
    sizeType: ['compressed'],  
    crop:{  
        width:800,  
        height:800,  
    },  
    success: function (res) {  
        var addr = res.tempFilePaths[0];  
        plus.io.requestFileSystem(  
            plus.io.PUBLIC_DOCUMENTS,  
            fs => {  
                fs.root.getFile(  
                    addr,  
                    {  
                        create: false  
                    },  
                    fileEntry => {  
                        fileEntry.file(function(file) {  
                            var reader = new plus.io.FileReader();  
                            reader.onloadend = function(e) {  
                                var base64Data = e.target.result;  
                                console.log(base64Data);  
                            };  
                            reader.readAsDataURL(file);  
                        })  
                    },  
                    e => {  
                        console.log('转换 出错',e)  
                        console.log(false)  
                    }  
                )  
            },  
            e => {  
                console.log(e.message)  
                console.log(false)  
            }  
        )  
    }  
});

操作步骤:
uni.chooseImage({  
    count: 1,  
    sizeType: ['compressed'],  
    crop:{  
        width:800,  
        height:800,  
    },  
    success: function (res) {  
        var addr = res.tempFilePaths[0];  
        plus.io.requestFileSystem(  
            plus.io.PUBLIC_DOCUMENTS,  
            fs => {  
                fs.root.getFile(  
                    addr,  
                    {  
                        create: false  
                    },  
                    fileEntry => {  
                        fileEntry.file(function(file) {  
                            var reader = new plus.io.FileReader();  
                            reader.onloadend = function(e) {  
                                var base64Data = e.target.result;  
                                console.log(base64Data);  
                            };  
                            reader.readAsDataURL(file);  
                        })  
                    },  
                    e => {  
                        console.log('转换 出错',e)  
                        console.log(false)  
                    }  
                )  
            },  
            e => {  
                console.log(e.message)  
                console.log(false)  
            }  
        )  
    }  
});

预期结果:

出现base64的编码

实际结果:

转换 出错, [Object] {"code":1,"message":"文件没有发现"}

bug描述:

【报Bug】uni.chooseImage 在ios短选择了相册后进行裁剪获得的res.tempFilePaths[0]地址传输给plus.io.requestFileSystem中,报错提示:文件没有发现

2025-11-26 14:53 负责人:无 分享
已邀请:
蔡cai

蔡cai - 开发的插件:https://ask.dcloud.net.cn/article/41539

你试下下面这样写看看

let convertLocalFileSystemURL = plus.io.convertLocalFileSystemURL(addr);  
let fileReader = new plus.io.FileReader();  
fileReader.readAsDataURL(convertLocalFileSystemURL);  
fileReader.onloadend = (onloadendRes) => {  
    console.log(onloadendRes);  
    // base64字段:onloadendRes.target.result  
}

要回复问题请先登录注册