《微信小程序开发从入门到实战》学习四十三

4.3.3 下载文件

在小程序端,使用wx.cloud.downloadFile方法可以将文件从云空间下载至本地。代码如下:

   // 使用回调风格的API下载文件,会返回一个downloadTask对象

   const downloadTask = wx.cloud.downloadFile({

     fileID: 'cloud://xxx.png', //文件的FileID

     success: res => {

       //下载文件成功后会返回临时文件路径

       console.log(res.tempFilePath)

     },

     fail: err => {

       //handle error

     }

   })

   // 在downloadTask对象上可以设置下载进度的监听回调

   downloadTask.onProgressUpdate(res => {

     console.log('下载进度', res.progress)

     console.log('已经下载的数据长度', res.totalBytesWritten)

     console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)

   })

   // 也可以通过downloadTask上面的abort方法取消下载任务

   // downloadTask.abort()

   // 下载文件时同样也支持Promise风格的API,但是不再返回downloadTask对象

   wx.cloud.downloadFile({

     fileID: 'cloud://xxx.png'

   }).then(res => {

     //get temp file path

     console.log(res.tempFilePath)

   }).catch(error => {

     // handle error

   })

(实践的时候,复制之前上传的文件的fileID到代码的fileID来,下载文件下来。在调试台的打印输出那里,打印完进度条后是下载的文件的临时url,点开可以看到图片,在电脑里实在找不到下载文件的文件路径,至少我目前暂时找不到)

下载文件成功时,文件实际上是被下载到一个临时的地方,当小程序关闭后这个文件有可能会被清理。如果希望永久存储文件,则需要使用wx.saveFile API,代码如下:

wx.cloud.downloadFile({

    fileID: 'cloud://xxx.png', // 文件的FileID

    success: res => {

      wx.getFileSystemManager().saveFile({

        tempFilePath: res.tempFilePath,

        success(res2){ // 使用res2命名参数,区别于已经存在的res变量

          const savedFilePath = res2.savedFilePath //从success回调的参数中获取文件路径

          console.log(savedFilePath)

        }

      })

    }

(实际运行的时候,success写错了,写成了sucess,改正后,提示我wx.saveFile快过时了,要换成wx.getFileSystemManager().saveFile,最后运行完调试台输出文件路径是临时url,担心永久存储了文件,现在又找不到文件位置,删不掉,多下几次内存会不会爆,瑟瑟发抖 ,先这样,以后有时间再找找)

相关推荐

  1. 程序开发入门实战学习

    2023-12-06 23:20:06       41 阅读
  2. 程序开发入门实战学习

    2023-12-06 23:20:06       36 阅读
  3. 程序开发入门实战学习

    2023-12-06 23:20:06       28 阅读
  4. 程序开发入门实战学习

    2023-12-06 23:20:06       31 阅读
  5. 程序开发入门实战学习

    2023-12-06 23:20:06       37 阅读
  6. 程序开发入门实战学习

    2023-12-06 23:20:06       39 阅读
  7. 程序开发入门实战学习

    2023-12-06 23:20:06       31 阅读
  8. 程序开发入门实战学习

    2023-12-06 23:20:06       38 阅读
  9. 程序开发入门实战学习

    2023-12-06 23:20:06       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 23:20:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 23:20:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 23:20:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 23:20:06       18 阅读

热门阅读

  1. Git篇如何搭建自己的git仓库

    2023-12-06 23:20:06       32 阅读
  2. Logstash的使用方法

    2023-12-06 23:20:06       42 阅读
  3. 基于深度学习的热红外与可见光图像融合

    2023-12-06 23:20:06       33 阅读
  4. git常用命令

    2023-12-06 23:20:06       43 阅读
  5. JVM

    JVM

    2023-12-06 23:20:06      39 阅读
  6. vue 组件通讯

    2023-12-06 23:20:06       31 阅读
  7. 二叉树的前、中和后序遍历的递归与迭代实现

    2023-12-06 23:20:06       26 阅读
  8. quickapp_快应用_DOM节点

    2023-12-06 23:20:06       34 阅读
  9. 第2节:Vue3 模板语法

    2023-12-06 23:20:06       32 阅读
  10. ReadWriteLock 和 StampedLock 的比较与解析

    2023-12-06 23:20:06       38 阅读