收藏
回答

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

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

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

回答关注问题邀请回答
收藏

8 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-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)

            }

        })

    },


    2019-09-11
    有用 5
    回复 11
    • 赵文慧
      赵文慧
      2019-09-17
      谢谢,用了这种思路
      2019-09-17
      回复
    • 小林
      小林
      2019-09-19
      没有找到图片?
      2019-09-19
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-09-19回复小林

      文件名类似 mmexpor1xxxxxxxx.jpg

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

      2019-09-19
      回复
    • K
      K
      2020-03-03
      ios  可以正常使用?
      2020-03-03
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-03-03回复K
      没有IOS真机,你试试吧
      2020-03-03
      回复
    查看更多(6)
  • 理想
    理想
    2020-08-09

    同问,怎么获取不同机型的类似:手机\内部存储\tencent\MicroMsg\wxanewfiles\xxxx\abc.txt,这样的路径,代码中怎么写,我是小白不太会,是不是每个机型去统计,写成判断,各自机型进行判断?

    

    2020-08-09
    有用 2
    回复 1
    • 慢捻抹复挑
      慢捻抹复挑
      2023-11-22
      这不是你的问题 这是傻叉官方的问题i
      2023-11-22
      4
      回复
  • 周瑞强
    周瑞强
    04-30

    还是直接弹窗确认后, 直接将地址写入剪切板, 然后提示 “复制地址在浏览器打开”

    wx.showModal({
      title: '提示',
      content: '请复制链接到浏览器中查看',
      cancelText: '取消',
      confirmText: '复制链接',
      success(res) {
        if (res.confirm) {
          wx.setClipboardData({
            data: fileUrl, // url地址
            success(res) {}
          });
        }
      }
    })
    
    04-30
    有用 1
    回复
  • 王超华
    王超华
    2023-08-01

    2023年了 还只能用这样的方法吗?

    2023-08-01
    有用 1
    回复 1
    • 夏唤
      夏唤
      03-06
      细说
      03-06
      回复
  • Wow
    Wow
    2020-02-25

    是呀,文件下载下来,究竟文件在哪里,官方能给个明确的答复嘛,现在都是两眼摸黑

    2020-02-25
    有用 1
    回复 1
    • 坤
      2020-07-14
      我华为手机,文件保存在:内部存储/Android/data/com.tencent.mm/MicroMsg/wxanewfiles/***/文件名 ,中间那个***是个长的字符串,不知道什么规则生成的
      2020-07-14
      回复
  • 乐刷团长
    乐刷团长
    2020-06-23

    我认为最好的方法,是上传到第三方平台,然后显示链接,让用户自己下载

    2020-06-23
    有用
    回复 1
    • zxqd
      zxqd
      2020-09-24
      什么三方平台呢?
      2020-09-24
      回复
  • 灵芝
    灵芝
    2019-09-11

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


    2019-09-11
    有用
    回复 10
    • 赵文慧
      赵文慧
      2019-09-11
      这个路径只可以是wx.env.USER_DATA_PATH下面吗? 可以说i其他路径吗?可以跳出微信的环境吗? 如果可以,怎么写这个路径呀? 谢谢
      2019-09-11
      1
      回复
    • WzW
      WzW
      2019-09-17回复赵文慧
      同问,请问你解决了吗
      2019-09-17
      回复
    • 赵文慧
      赵文慧
      2019-09-17回复WzW
      应该是只有微信的那个很深的路径,后来按照图片做了,后台把pdf转成图片显示,让客户自行长按保存了
      2019-09-17
      回复
    • 我叫张小咩²⁰²¹
      我叫张小咩²⁰²¹
      2019-10-14
      可是这个具体的路径值在ios、安卓上分别怎么获取,怎么设置呢?
      2019-10-14
      回复
    • 朱萍  中钢网-中国互联网百强企业
      朱萍 中钢网-中国互联网百强企业
      2019-12-12回复赵文慧
      可以跳出微信环境吗?
      2019-12-12
      回复
    查看更多(5)
  • ￴
    2019-09-11

    有save 自然就有get


    2019-09-11
    有用
    回复 1
    • 夏唤
      夏唤
      03-06
      细说get
      03-06
      回复
登录 后发表内容
问题标签