微信小程序下载不同域名视频方法,解决下载文件tempFilePath后缀unknown问题

  最近开发小程序项目有个需求,是在小程序端下载各种各样域名的视频,由于视频地址的域名不是固定的,因此无法在微信后台进行设置域名后直接在小程序端进行下载,解决方法如下,后端采用的是php

  小程序端代码如下,跟普通下载没区别,最重要一点是对视频进行重命名,不然会出现下载文件tempFilePath后缀unknown的问题,还有一个是删除掉缓存文件,不然类积超过10M,就无法再下载,会报缓存满的错误

//微信小程序代码,下载视频文件到本地
  downLoadFile:function(){
    wx.showLoading({
      title: '下载中..',
    })
    var that = this
    //下载文件,生成临时地址
    var fileName = new Date().valueOf();
    var filePath = wx.env.USER_DATA_PATH + '/' + fileName + '.mp4'
    wx.downloadFile({
      url: that.data.downUrl,//后端下载视频的接口地址,如:test.com/api/downLoadVideo?url=http://abc.com/1.mp4
      filePath: filePath,
      success(res) {
        wx.hideLoading();
        //保存到本地
        const savedFilePath = res.filePath;
            //保存文件
            wx.saveVideoToPhotosAlbum({
              filePath: savedFilePath,
              success:function(data){
                wx.showModal({
                  title: '提示',
                  content: '下载成功,文件已保存至您的手机',
                })
              },
              fail:function(err){
                console.log(err)
                wx.showModal({
                  title: '提示',
                  content: '保存失败,需要您授权保存相册,请手动通过小程序的设置功能授权使用相册,再进行下载',
                })
              },
              complete:function(){
                /* 删除文件缓存,否则类积超过10M保存失败 */
                let fileMgr = wx.getFileSystemManager();
                fileMgr.unlink({
                  filePath: filePath,
                  success: function (r) {
                    console.log("删除成功")
                  },
                })
              }
            })
          },
          fail: function (err) {
            wx.hideLoading();
            wx.showModal({
              title: '提示',
              content: '下载失败,可能文件太大,请复制链接到手机浏览器中下载',
            })
      }
    })
  }

后端php代码如下

/**
 * 下载远程地址视频到本地
 * $url为实际视频的地址
 */
function downLoadVideo()
{
    $url = input($url);
    //设置文件的类型
    header('Content-type: application/mp4');
    //下载显示的名字
    $filename = time().".mp4";
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    readfile("$url");
    exit();
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值