zopen
zopen
  • 发布:2021-04-29 10:57
  • 更新:2021-05-13 19:09
  • 阅读:939

【报Bug】ios saveFile文件标题存在中文

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.1.11

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: ipad

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
uni.downloadFile({  
                url: url,  
                success: (res) => {  
                    if (res.statusCode === 200) {  
                        const tempFilePath = res.tempFilePath;  
                        url = tempFilePath;  
                        console.log("tempFilePath",tempFilePath)  
                        uni.saveFile({  
                            tempFilePath: tempFilePath,  
                            success: function (res) {  
                                const savedFilePath = res.savedFilePath  
                                console.log("savedFilePath",savedFilePath)  
                                uni.setStorage({  
                                    key: key,  
                                    data: savedFilePath  
                                })  
                                complete && complete(savedFilePath)  
                            },  
                            complete:function(aa){  
                                console.error(aa);  
                            }  
                        });  
                    }  
                }  
            })

操作步骤:

下载文件,然后保存文件

预期结果:

{"errMsg":"saveFile:ok","savedFilePath":"_doc/uniapp_save/16196650311902.png"}

实际结果:

{"errMsg":"saveFile:fail 文件没有发现","errCode":1,"code":1}

bug描述:

下载文件,然后保存文件,如果下载文件包含中文标题的话,就会报文件没有发现。

tempFilePath, _doc/uniapp_temp_1619662670249/download/%E6%99%AF%E5%85%B0.jpg at uview-ui/components/u-image-cache/jy-cache.js:24   
10:17:49.856  [Object] {"errMsg":"saveFile:fail 文件没有发现","errCode":1,"code":1}  at uview-ui/components/u-image-cache/jy-cache.js:37 __ERROR 
2021-04-29 10:57 负责人:无 分享
已邀请:
zopen

zopen (作者)

uniapp 在ios下<image>标签使用本地图片路径包含中文也不行,encodeURI也不行 目前只能使用plus解决了
代码如下

plus.io.resolveLocalFileSystemURL(tempFilePath,(srcEntry)=>{  
                            plus.io.resolveLocalFileSystemURL("_doc",(dstEntry)=>{  
                                dstEntry.getDirectory("uniapp_save",{create:true,exclusive:false},(saveEntry)=>{  
                                    //console.log("srcEntry.toURL",srcEntry.toURL())  
                                    //console.log("dstEntry.toURL",dstEntry.toURL())  
                                    //console.log("saveEntry.toURL",saveEntry.toURL())  
                                    let fnames = srcEntry.name.split(".");  
                                    let fileName = Buffer.from(fnames[0]).toString('hex')+(fnames[1]?('.'+fnames[1]):'');  
                                    //console.log("fileName",fileName)  
                                    srcEntry.moveTo(saveEntry,fileName,(res)=>{  
                                        const savedFilePath = res.toURL()  
                                        console.log("savedFilePath",savedFilePath)  
                                        uni.setStorage({  
                                            key: key,  
                                            data: savedFilePath  
                                        })  
                                        complete && complete(savedFilePath)  
                                    });  
                                })  
                            },(err)=>{  
                                console.error(err);  
                            })  
                        });
天生DR

天生DR - 天生我材必有用

请提供 示例工程 附上你这个 方便查看

天生DR

天生DR - 天生我材必有用

我试了下 有中文的图片 3.1.1 3.1.2 均没有您描述的问题

  1. 升级到最新HBuilder 看是否还有此问题
  2. 上传能稳定复现的示例Demo 方便后续调试
  • zopen (作者)

    附件上传,hbuliderx:3.1.12.20210428

    2021-05-13 19:10

  • 天生DR

    回复 zopen: 你这个链接有302 跳转啊?

    2021-05-14 11:55

zopen

zopen (作者)

19:05:24.252 项目 '自定义启动广告页' 编译成功。
19:05:24.271 正在同步手机端程序文件...
19:05:26.118 同步手机端程序文件完成
19:05:26.164 正在热刷新,如刷新失败,请点击控制台工具栏上的【重启应用图标】
19:05:29.384 App Launch at App.vue:4
19:05:29.408 App Show at App.vue:19
19:05:29.432 [Object] {"errMsg":"saveFile:fail 文件没有发现","errCode":1,"code":1} at components/jy-image/jy-cache.js:36 ERROR
19:05:29.454 [Object] {"errMsg":"saveFile:fail 文件没有发现","errCode":1,"code":1} at components/jy-image/jy-cache.js:36
ERROR
19:08:35.230 App Hide at App.vue:22

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