美文网首页那些年遇到的坑
vue + jsZip 实现解压文件并下载到本地

vue + jsZip 实现解压文件并下载到本地

作者: 筱贰_梁 | 来源:发表于2020-07-14 13:43 被阅读0次

应用场景

image.png

点击下载轻量化后文件,后台返回的地址是一个存在阿里云的链接地址,这边直接用浏览器下载后,是一个zip的压缩文件

image.png
image.png

但是需求下载后是解压后的pbim文件,而不是zip,于是想到前端解压后,在下载到本地

实现方法

安装jszip

npm install jszip

点击下载按钮,先去阿里云读取zip的文件信息

     this.$axios({
              method: 'get',
              responseType: 'blob',
              url: fileUrl  // 文件所在阿里云的链接地址
            }).then(res => {
              // 把blob格式文件转成FIle类型
              let files = new window.File([res.data], fileName, {type: 'zip'})
              // 读取zip压缩文件里面的文件内容
              JSZip.loadAsync(files).then((zip) => {
                for (let key in zip.files) {
                // 用blob的格式读取,方便后面下载到本地
                  let base = zip.file(zip.files[key].name).async('blob')
                  base.then(res => {
                    this.doDownload(res, zip.files[key].name)
                  })
                }
              })
            })

下载到本地

doDownload (data, name) {
        if (!data) {
          return
        }
        let url = window.URL.createObjectURL(new Blob([data]))
        let link = document.createElement('a')
        link.style.display = 'none'
        link.href = url
        link.setAttribute('download', name)

        document.body.appendChild(link)
        link.click()
      }

下载成功

image.png

这世上本没有路,踩的坑多了,也变成了路

相关文章

  • vue + jsZip 实现解压文件并下载到本地

    应用场景 点击下载轻量化后文件,后台返回的地址是一个存在阿里云的链接地址,这边直接用浏览器下载后,是一个zip的压...

  • 下载压缩文件

    安装依赖 jszip和file-saver 使用: 先把文件压缩,再把压缩文件下载到本地

  • vue.js devtools安装

    没钱,也不会翻墙。 所以。自己做个记录 1,找到vue-devtools的github项目,并下载到本地 2,解压...

  • iconfont下载至本地,项目中怎么使用

    首先在iconfont官网上面选好我们要使用的图标,并下载到本地 将下载的文件解压并复制引入文件中image.pn...

  • 小程序中使用iconfont图标

    首先在iconfont官网中进行下载到本地 直接将下载本地的文件进行解压之后将iconfont.css文件,只要这...

  • jszip.js远程读取一个zip文件

    项目用到了jszip.js插件,用于在后台获取zip文件,前端解压并将模型进行在线显示. 官网 jszip的API...

  • python操作MySQL

    python操作MySQL pip3 install pymysql下载到本地并解压到执行目录 pypi是一个组织...

  • pymysql操作MySQL

    python操作MySQL pip3 install pymysql下载到本地并解压到执行目录 pypi是一个组织...

  • Redis安装

    1、依赖 2、安装 3、解压 4、安装 5、修改配置文件由于配置文件太长,需要下载到本地修改比较直观,文件在red...

  • react项目中使用iconfont

    第一步: 加入图表库,下载到本地 第二步: 将解压后的文件夹放置在项目的src文件下,只需保留后缀为:eo...

网友评论

    本文标题:vue + jsZip 实现解压文件并下载到本地

    本文链接:https://www.haomeiwen.com/subject/eawxhktx.html