吴web
吴web
  • 发布:2021-08-20 10:09
  • 更新:2021-08-20 15:19
  • 阅读:1833

【报Bug】app通过uni.downloadFile下载中文名的pdf文件,返回乱码

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: iphone 7s

页面类型: vue

打包方式: 云端

项目创建方式: CLI

CLI版本号: 4.1.2

App下载地址或H5⽹址: https://sj.qq.com/myapp/detail.htm?apkName=com.imocq.nzb.android&info=18A28139C616D7FFA67150CB8EC13968

操作步骤:

上传中文名附件,并通过uni.downloadFile下载

预期结果:

下载成功,不出现乱码情况

实际结果:

下载成功,出现乱码情况

bug描述:

通过uni.downloadFile下载中文名的pdf文件,返回乱码。例如:"_doc/uniapp_temp_1629425125103/download/1629363157695_应用功能规划.pdf"

2021-08-20 10:09 负责人:无 分享
已邀请:
DCloud_iOS_WZT

DCloud_iOS_WZT

下载地址发一下

  • 吴web (作者)

    https://file.vip.imocq.com/000-a48798ad-1551-4a90-93aa-df7a5b948407/20210819/1629363157695_应用功能规划.pdf?_upt=03454ab51629430146&_upd=1629363157695_应用功能规划.pdf

    2021-08-20 11:24

  • DCloud_iOS_WZT

    回复 吴web: token

    2021-08-20 11:39

  • 吴web (作者)

    回复 DCloud_iOS_WZT: token指的是?

    2021-08-20 11:42

  • DCloud_iOS_WZT

    回复 吴web: {"code":"40310013","msg":"invalid user token."}

    2021-08-20 11:51

  • 吴web (作者)

    回复 DCloud_iOS_WZT: loginToken: 7dd997cb88f89f02133f7bcbcb43a5d56ac4944994aa9521

    2021-08-20 12:14

  • DCloud_iOS_WZT

    回复 吴web: 在header里? 要不你发一个完整的示例代码在附件里

    2021-08-20 12:21

  • 吴web (作者)

    这个链接是有时效性的6分钟

    2021-08-20 14:02

  • 吴web (作者)

    回复 DCloud_iOS_WZT: https://file.vip.imocq.com/000-a48798ad-1551-4a90-93aa-df7a5b948407/20210820/1629430314065_测试.txt?_upt=3b8538b61629440479&_upd=1629430314065_测试.txt

    2021-08-20 14:16

  • DCloud_iOS_WZT

    回复 吴web: 这。。我不太好测啊,这个大概率是你们服务的文件编码格式问题导致的,下载返回的什么名字就显示什么名字

    2021-08-20 15:11

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 主要是安卓不会,ios才会有这种问题。而且我是通过uni.downloadFile这api来下载的后台返回的链接

    2021-08-20 15:15

  • DCloud_iOS_WZT

    回复 吴web: 能提供一个稳定测试的链接么

    2021-08-20 15:17

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 因为这块的路径是通过又拍云平台返回的链接,时间这款我这边控制不了

    2021-08-20 15:25

  • DCloud_iOS_WZT

    回复 吴web: 用的哪个版本hx

    2021-08-20 15:28

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 3.1.22.20210709

    2021-08-20 15:37

  • DCloud_iOS_WZT

    回复 吴web: 更新到最新的正式版试一下

    2021-08-20 15:50

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 升级到最新版还是不行

    2021-08-20 17:05

  • DCloud_iOS_WZT

    回复 吴web: 除了文件名的问题,文件本身能打开么

    2021-08-20 17:32

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 可以打开

    2021-08-20 18:28

  • DCloud_iOS_WZT

    回复 吴web: 用楼下的方法试一下,下载前地址urlencode下

    2021-08-23 15:49

  • 吴web (作者)

    回复 DCloud_iOS_WZT: 不行哟

    2021-08-23 19:29

Absorbed66c

Absorbed66c - 码农一枚

用h5plus的api去下载 可以指定文件名
https://www.html5plus.org/doc/zh_cn/downloader.html

  • 吴web (作者)

    之前试过这个api方法,还一样返回乱码

    2021-08-20 14:18

  • Absorbed66c

    回复 吴web: 进行解码就行了

    2021-08-20 14:19

  • 吴web (作者)

    回复 Absorbed66c:返回:“_测试.txt” 格式,转换没有

    2021-08-20 14:28

吴web

吴web (作者) -

   uni.downloadFile({  
            url: "https://file.vip.imocq.com/000-a48798ad-1551-4a90-93aa-df7a5b948407/20210820/1629430314065_测试.txt?_upt=acd0d7c31629444243&_upd=1629430314065_测试.txt",//下载地址接口返回  
            success: (data) => {  
                if (data.statusCode === 200) {  
                    //文件保存到本地  
                    var file = data.tempFilePath  
                    uni.saveFile({  
                        tempFilePath: data.tempFilePath, //临时路径  
                        success: function(res) {  
                            plus.nativeUI.closeWaiting();  
                            setTimeout(() => {  
                                //打开文档查看  
                                uni.openDocument({  
                                    filePath: res.savedFilePath,  
                                    success: function(res) {  
                                        // console.log('打开文档成功');  
                                    }  
                                });  
                            }, 1000)  
                        },fail(err){  
                            console.log(err,'错误的回掉************')  
                        }  
                    });  
                }  
            },  
            fail: (err) => {  
                console.log(err);  
                uni.showToast({  
                    icon: 'none',  
                    mask: true,  
                    title: '失败请重新下载',  
                });  
            },  
        });

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