热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序文件下载wx.downloadFile()、wx.saveFile()和wx.openDocument()

最近编写了一个小程序,其中涉及到了文件下载功能,通过微信官方文档查得可以使用API中的wx.saveFile(),官方文档中的例子是这样的:wx.saveFile({te

  最近编写了一个小程序,其中涉及到了文件下载功能,通过微信官方文档查得可以使用 API 中的 wx.saveFile(),官方文档中的例子是这样的:

wx.saveFile({
    tempFilePath: tempFilePaths[0],
    success (res) {
        const savedFilePath = res.savedFilePath
    }
})

  

  等到我调用时发现,一直没反应,我是这样写的:

wx.saveFile({
    tempFilePath: fileUrl,
    success (res) {
        Toast(\'下载成功\')
    }
})

  

  后又添加了 fail 回调函数验证才知道下载失败了:

wx.saveFile({
    tempFilePath: fileUrl,
    success (res) {
        Toast(\'下载成功\')
    },
    fail(error){
        Toast(\'下载失败\')
    }
})

  

  这样我就关注到官方文档有这样一行:

 

 

  接下来就考虑是路径出了问题,那么这个临时路径是什么呢?在接下来的查询中我得知,得要先通过 wx.downloadFile 生成个本地的临时路径才行,就有了下面的代码:

wx.downloadFile({
    url: fileUrl,
    success (res) {
        wx.saveFile({
            tempFilePath: res.tempFilePath,
            success (res) {
                Toast(\'下载成功\')
            },
            fail(error){
                Toast(\'下载失败\')
            }
        })
    }
})

  

  这样就可以下载成功了!!!但是,这就又发现了一个问题,下载好的文档不知道去哪里查找。

  下面我们就换一种方式,使用 wx.OpenDocument() 直接将下载好的文件打开,就能找到位置了:

mpvue.downloadFile({
    url: this.fileUrl,
    success (res) {
        mpvue.openDocument({
            filePath: res.tempFilePath,
            success(){
                Toast(\'文件打开成功\')
            }
        })
    }
})

  

  通过这种直接打开文件的方式,我们就可以找到文件位置了。

 


推荐阅读
author-avatar
型尚体验公馆_760
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有