纯js文件的预览和下载

我在写项目的时候遇到一个问题华为OBS云上传回的下载链接,其中的一些特殊格式是在本地预览而不是下载,这好吗?这很不好所以纯js方法敬上!

//原本我下载的方法直接写进a标签  
downloadFile(row) {
      if (row.fileurl == '') {
        this.$message('文件未上传!')
      } else {
        window.open(row.fileurl, '_blank')
      }
    },
    //阅览文件
  toBase64(str) {
      var encodedData = encodeURIComponent(Base64.encode(str)) // 编码
      this.testSrc = window.gcfg.filePreviewUrl + encodedData
      window.open(this.testSrc, '_blank')
    },
    // 下载含有url的文件 利用a标签下载
    downloadUrlFile(url, fileName) {
      let filename = fileName
      return fetch(url).then((res) =>
        res.blob().then((blob) => {
          let a = document.createElement('a')//创建一个a标签
          let url = window.URL.createObjectURL(blob)//转译比特流放入内存
          a.href = url
          a.download = filename
          a.click()//点击
          window.URL.revokeObjectURL(url)//卸载缓存
        })
      )
    },

当然好像也有一定的问题,好像和游览器支不支持格式有关具体不清楚,csdn上有一种要使用js文件下载的方法,但是都知道吧?要钱。so,先试试我这个吧~~~~

UI图:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值