微信小程序之下载(下载文件tempFilePath后缀unknown)

更新日期: 2019-08-16 阅读: 4.1k 标签: 下载

最近有用到微信小程序的downloadFile接口,但是在真机上出现了文件后缀为unknown,导致文件保存失败,这里记录下


1.下载文件

使用downloadFile下载api

/* 直接这样写的话,会出现下载文件后缀名为unknown的情况 */
wx.downloadFile({
  url: '',
  success (res) {
    console.log(res.filePath);
  }
})

改进后的下载保存

/* 使用时间戳为下载后的文件的名字 */
let fileName = new Date().valueOf();
wx.downloadFile({
  /* url 为要下载的文件链接 */
  url: '',
  /* filePath指定文件下载后存储的路径,wx.env.USER_DATA_PATH */
  filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4', 
  success: res => {
    let filePath = res.filePath;
    wx.saveVideoToPhotosAlbum({
      filePath,
      success: file => {
        wx.hideLoading();
        /* 删除缓存 */
        let fileMgr = wx.getFileSystemManager();
        fileMgr.unlink({
           filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
           success: function (r) {

           },
        })
     },
     fail: err => {
        wx.hideLoading();
        /* 拒绝授权时显示 */
        if (err.errMsg === 'saveVideoToPhotosAlbum:fail auth deny') {
          wx.showModal({
            title: '提示',
            content: '需要您授权保存相册',
            showCancel: false,
            success: data => {
              /* 打开权限设置 */
              wx.openSetting({
                success: setting => {
                  if (setting.authSetting['scope.writePhotosAlbum']) {
                    wx.showModal({
                      title: '提示',
                      content: '获取权限成功,再次点击下载即可保存',
                      showCancel: false,
                    })
                  } else {
                    wx.showModal({
                      title: '提示',
                      content: '获取权限失败,将无法保存到相册哦',
                      showCancel: false,
                    })
                  }
                },
              })
            }
          })
        }
      },
  },
  fail: err => {
    wx.hideLoading();
    if (err.errMsg == 'downloadFile:fail createDownloadTask:fail url not in domain list') {
        wx.showToast({
          title: '服务器错误,请联系相关管理员',
          icon: 'none'
        })
     }
  },
  complete: () => {
    wx.hideLoading();
  }
})


2.下载图片

下载图片的步骤和上面是一样的,就是在保存的时候,api使用的不一样

 wx.saveImageToPhotosAlbum({
    filePath: '',
    success: () => {}
})

本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/article/detial/5333

JS实现zip打包文件并下载

之前做了个SVG Sprites还原工具(上传合并好的SVG Sprites文件,分解成独立的小SVG),然后经用户反馈,希望增加个打包下载功能。然后我就研究了下,还挺有意思的,目前已经上线,如下图所示:

前端实现文件下载方式总汇

a标签完成,js实现下载,js中ajax实现音频或者视频不跳转进行文件下载:先请求音频的链接,再把返回值转换成二进制,再根据他二进制对象生成新链接,再创建a标签,点击a标签;fetch实现

JavaScript实现图片合成下载

最近项目一个功能需求,需实现将两张图片合成后下载的一个功能。分析完功能需求后,决定直接使用前端技术来实现。为提高效率,使用插件(html2canvas)配合编写此功能。有关插件(html2canvas)的介绍

点击下载文件产生的白屏问题解决

产生白屏问题的原因是因为点击下载按钮的时候实际上因为某些原因产生了2次点击,如果使用的是 window.location.href 这种下载方式或者a标签的方式,会发生链接覆盖,产生页面跳转。如果想要解决这个问题可以采用iframe进行下载

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!