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


      最近编写了一个小程序,其中涉及到了文件下载功能,通过微信官方文档查得可以使用 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('文件打开成功')
                }
            })
        }
    })
    

      

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

  • 相关阅读:
    Visual Studio 2008 菜单:工具+选项+文本编辑器+HTML+格式,选中“键入时插入属性值引号”
    itemarray的意思
    SQL技巧大全
    IIS调用com组件的权限问题
    网站快速备案法(1小时)
    ASP.NET 2.0中WEB应用程序的部署
    c#中MessageBox的使用
    推荐一款DataGridView的打印解决方案
    使用C#格式化字符串
    关于MSSQL导入导出时主键与约束丢失的问题解决
  • 原文地址:https://www.cnblogs.com/belongs-to-qinghua/p/12392777.html
Copyright © 2020-2023  润新知