小程序下载pdf/doc/excel功能(已解决)

wx.downloadFile({
      // 示例 url,并非真实存在
      url: 'https://blog.csdn.net/qq_35451130/article/details/125506586',
      success: res => {
        const filePath = res.tempFilePath
        wx.openDocument({
          filePath: filePath,
          fileType: 'docx',
          success: function (res) {
            console.log('打开文档成功')
          }
        })
      },
      fail: err => {
        console.log(err);
      }
    })

下载好直接打开了

也可以用下面的方法

wx.env.USER_DATA_PATH + '/abc.txt'

wx.env.USER_DATA_PATH 真机上是 wxfile://usr

真实路径:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt

xxxx:是一个很长的由英文数字组成的文件夹,这个文件夹的命名规则,尚不清楚

所以保存后的文件具体在什么路径不知道,是个问题,不过有个投机取巧的方法:

1.使用wx.downloadFile下载docx文件后,使用fileSystemManager.saveFile保存docx文件为图片格式

2.保存成功后,在使用wx.saveImageToPhotosAlbum保存到相册,最后路径为

手机\内部存储\tencent\MicroMsg\WeiXin\mmexpor1xxxxxxxx.jpg,1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了



//先检查相册访问授权情况

wx.getSetting({

    success: (res) => {

        //检查是否有访问相册的权限,如果没有则通过wx.authorize方法授权

        if (!res.authSetting['scope.writePhotosAlbum']) {

            console.log('没有获取授权');

            wx.authorize({

                scope: 'scope.writePhotosAlbum',

                success: (res) => {

                    //用户点击允许获取相册信息后进入下载保存逻辑

                    this.save()

                }

            })

        } else {

            console.log('已获取授权');

            this.save()

        }

    }

});




save:function(){

    wx.downloadFile({

        url: "docx文件下载地址",

        success(res) {

            console.log(res)

            var savePath = wx.env.USER_DATA_PATH + "/123.docx.jpg"

            wx.getFileSystemManager()

            .saveFile({//下载成功后保存到本地

                tempFilePath: res.tempFilePath,

                filePath: savePath ,

                success(res2) {

                    //获取了相册的访问权限,使用 wx.saveImageToPhotosAlbum 将图片保存到相册中

                    wx.saveImageToPhotosAlbum({

                        filePath: savePath ,

                        success: (res) => {

                            //保存成功弹出提示,告知一下用户

                            wx.showModal({

                                title: '文件已保存到手机相册',

                                content: '位于tencent/MicroMsg/WeiXin下 \r\n将保存的文件重命名改为[ .docx ]后缀即可',

                                confirmColor: '#0bc183',

                                confirmText: '知道了',

                                showCancel: false

                            })

                        },

                        fail(res) {

                            console.log(res)

                        }

                    })

                },

                fail(res) {

                    console.log(res)

                }

            })

        },

        fail(res) {

            console.log(res)

        }

    })

},

猜你喜欢

转载自blog.csdn.net/ZHANG157111/article/details/130645784