zoukankan      html  css  js  c++  java
  • 下载文件

    /**
     * 下载文件
     * @param content 响应体
     * @param fileName 文件名
     */
    export function download(content, fileName) {
      const blob = new Blob([content]) //创建一个类文件对象:Blob对象表示一个不可变的、原始数据的类文件对象
      const url = window.URL.createObjectURL(blob) //URL.createObjectURL(object)表示生成一个File对象或Blob对象
      let dom = document.createElement('a') //设置一个隐藏的a标签,href为输出流,设置download
      dom.style.display = 'none'
      dom.href = url
      dom.setAttribute('download', fileName) //指示浏览器下载url,而不是导航到它;因此将提示用户将其保存为本地文件
      document.body.appendChild(dom)
      dom.click()
    }
     
     
     
    exportTaskTestReportFun() {
          this.exportTaskTestReport({  //接口 
            projectId: this.projectId,
            taskId: this.currentNodeData.id,
            taskExcId: this.currentRecord,
          })
            .then(resp => {
              const contentDisposition = resp.headers['content-disposition']
              let fileName = 'unknown'
              if (contentDisposition) {
                fileName = window
                  .decodeURI(resp.headers['content-disposition'])
                  .split('=')[1]
              }
              this.$message.success('导出成功')
              download(resp.data, fileName)
            })
            .catch(err => {
              console.error(err)
            })
        },
     
     
     
    exportTaskTestReport(_, {projectId, taskId, taskExcId}) {          //记得这里是用get,而不是$get,$get封装过了,会直接去response的data,但是往往下载需要拿到他的文件名,在resp.headers中
        return this.$axios.get(
          `${BASE}/projects/${projectId}/reports/tasks/${taskId}/${taskExcId}/export-html`,
          {
            responseType: 'arraybuffer',
          },
        )
      },
  • 相关阅读:
    南阳1071
    hdu5110 dp
    hdu1199 线段树
    hdu5107 线段树
    hdu5106 数位dp
    hdu 5103 状态压缩dp
    C Strange Sorting
    hdu5102 枚举每条边的长度
    uva672
    uva473
  • 原文地址:https://www.cnblogs.com/MJmajong/p/13597326.html
Copyright © 2011-2022 走看看