小程序文件下载并保存文件名打开

小程序文件下载并写入存储并以非临时文件名打开

1.接口调整基础

盼星星,盼月亮,终于盼来了微信小程序SaveFile接口的调整,以前10M限制的时代一去不复返了。

以前超过10M的文件想要打开,只可以通过临时文件的方式,打开文件前需要判断文件大小,只有小于10M的文件才可以写入存储,以非临时文件的形式打开。

临时文件无法由开发者指定文件名称

2.文件上传注意事项

  1. 文件上传完成后必须记录上传文件的名称(或者自命名并记录)。

  2. 不可将文件以数据流的形式存储进入数据表中(分布式文件数据库可以)。

文件上传具体部分代码解析,请参见我的另一篇博客:https://www.cnblogs.com/masterchd/p/12319440.html

文末会附上上传的实现效果和对应代码开源地址。

3.文件下载

此部分包含三个功能点

  1. 文件写入系统存储

  2. 文件下载进度监听

  3. 清空文件缓存

此处以下载云存储中文件为例(非云存储代码文末附上地址)

文件下载和进度监听

downFile(e) {
    this.clv(); //清理缓存部分代码
    var fdetail = e.currentTarget.dataset.detail;
    var iscloud = this.data.cloud;
    var downloadTask = null;//下载进度监听器
      downloadTask = wx.cloud.downloadFile({
        fileID: fdetail.fileurl,
        success(res) {
          var finfo = wx.getFileInfo({
            filePath: res.tempFilePath,
            success: f => {
              wx.getFileSystemManager().saveFile({
                tempFilePath: res.tempFilePath,
                filePath: `${wx.env.USER_DATA_PATH}` + "/" + fdetail.filename,
              })
              wx.showModal({
                title: '是否打开文件',
                content: '',
                success(ans) {
                  if (ans.confirm) {
                    wx.openDocument({
                      filePath: wx.env.USER_DATA_PATH + "/" + fdetail.filename,
                    })
                  }
                }
              })
            }
          })

        }
      })
      downloadTask.onProgressUpdate((res) => {
        this.setData({
          jindu: res.progress
        })
      })
    

  },

文件缓存清理

clv() {
    wx.getSavedFileList({ // 获取文件列表
      success(res) {
        res.fileList.forEach((val, key) => { // 遍历文件列表里的数据
          // 删除存储的垃圾数据
          wx.removeSavedFile({
            filePath: val.filePath
          });
        })
      }
    })
  },

改部分代码可以写入saveFilefail回调中,并在该部分代码成功回调后,再次调用saveFile完成文件写入。


标签: 小程序 小程序开发 常州小程序

演示站
  • 版权声明:本站部分文章收集整理来源网络,仅供学习与参考,不代表本站支持其观点,如有内容侵权请及时联系本站客服,本站将会及时处理,于2021-06-03,由常州橙光网络发表,共 4592个字。
  • 转载请注明:小程序文件下载并保存文件名打开
上一篇:正确处理下载文件时中文文件名乱码的问题(Content-Disposition)
下一篇:阿里云网站备案流程

发表评论