vue下载文件进度提示

在这里插入图片描述

    downloadFj (id, index, row) {
      this.tableData2.forEach((ele, i) => {
        if (i == index) {
          ele.downLoadFlag = true
        }
      })

      var elemIF = document.createElement("iframe")
      // console.log(G_CGI_PHP.superOrder.downloadItem + '?id=' + id);
      // elemIF.src = fileMember
      elemIF.src = G_CGI_PHP.group.suzexianZipDownload + "?id=" + id
      console.log(elemIF.src)

      elemIF.style.display = "none"
      document.body.appendChild(elemIF)

      // 上方是点击就触发了实际下载 然后下方.then是知道下载好了
      axios({
        url: G_CGI_PHP.group.suzexianZipDownload + "?id=" + id,
        method: 'get',
        timeout: 300000,
        // responseType: 'blob',
        onDownloadProgress (progress) {
          // 查看下载进度 但是拿不到下载文件的总大小 只能拿到文件正在下载的大小
          console.log(progress, progress.target, progress.loaded, progress.total)
          console.log(Math.round(progress.loaded / progress.total * 100) + '%')
        }
      }).then(res => {
        this.tableData2.forEach((ele, i) => {
          if (i == index) {
            ele.downLoadFlag = false
          }
        })
        // 前端在使用axios发送网络请求时,如文件下载,无法实时获取当前已经下载的文件流,只有当后端返回全部流时,才能在浏览器右下角显示已经完成的进度。
        console.log(222, res)
        if (res.status != 200) {
          this.$message.warning(res.statusText)
        }
      }).catch(error => {
        console.log(error)
        this.tableData2.forEach((ele, i) => {
          if (i == index) {
            ele.downLoadFlag = false
          }
        })
      })
    },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中预览和下载docx文件,可以使用第三方JavaScript库,如`docx.js`或`mammoth.js`,然后将其集成到Vue组件中。下面是一个基本的Vue组件示例: ``` <template> <div> <div v-html="html"></div> <button @click="downloadDocx">下载</button> </div> </template> <script> import axios from 'axios'; import { Document } from 'docx'; export default { data() { return { html: '' }; }, mounted() { axios.get('example.docx', { responseType: 'arraybuffer' }) .then(response => { const doc = new Document(response.data); this.html = doc.getHTML(); }) .catch(error => console.log(error)); }, methods: { downloadDocx() { axios.get('example.docx', { responseType: 'arraybuffer' }) .then(response => { const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'example.docx'; link.click(); }) .catch(error => console.log(error)); } } }; </script> ``` 这个示例中,我们使用`axios`库从服务器加载docx文件,然后使用`docx.js`库将其转换为HTML格式,并在Vue组件中显示。我们还添加了一个下载按钮,当用户点击该按钮时,会将docx文件下载到本地。你需要将`example.docx`替换为你自己的docx文件路径。 需要注意的是,这些库可能不支持所有的docx文件格式,因此在使用之前最好先测试一下。此外,还应该考虑到docx文件较大时,加载和转换过程可能会比较耗时,因此最好添加一些进度提示,以提高用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值