收藏
回答

fileSystemManager.saveFile保存的文件在哪里能找到?

场景是:在小程序中下载docx,并且客户需要拿到这个文件,后续去转发或者打印。

现在找不到这个文件。  请问需要怎么做才能找到这个文件。

最后一次编辑于  09-11  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • nickname
    nickname
    09-11

    你好,这个路径可以自行设置的:https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.saveFile.html


    09-11
    赞同
    回复 4
    • 乐
      09-11
      这个路径只可以是wx.env.USER_DATA_PATH下面吗? 可以说i其他路径吗?可以跳出微信的环境吗? 如果可以,怎么写这个路径呀? 谢谢
      09-11
      1
      回复
    • WzW
      WzW
      09-17回复
      同问,请问你解决了吗
      09-17
      回复
    • 乐
      09-17回复WzW
      应该是只有微信的那个很深的路径,后来按照图片做了,后台把pdf转成图片显示,让客户自行长按保存了
      09-17
      回复
    • 我叫张小咩²⁰¹⁹
      我叫张小咩²⁰¹⁹
      19小时前
      可是这个具体的路径值在ios、安卓上分别怎么获取,怎么设置呢?
      19小时前
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    09-11

    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)

            }

        })

    },


    09-11
    赞同
    回复 3
    • 乐
      09-17
      谢谢,用了这种思路
      09-17
      回复
    • 小林
      小林
      09-19
      没有找到图片?
      09-19
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      09-19回复小林

      文件名类似 mmexpor1xxxxxxxx.jpg

      1xxxxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了

      09-19
      回复
  • 哎哟喂ε==(っ°^°)っ
    哎哟喂ε==(っ°^°)っ
    09-11

    有save 自然就有get


    09-11
    赞同
    回复
问题标签