JAVA配合Freemark模板生成word返回文件流,前台vue接收下载

直接上vue的代码:

	let sendData = {}
    let successCallBack = (resp) => {
      if (resp.status !== 200) {
        this.$message.error('文件下载失败')
        return false
      }
      // ********************* 接收文件流 ***********************
      let blob = new Blob([resp.data], {
        // type   mimi类型  可以百度详细类型
        // word文档为msword,application/pdfpdf文档为pdf  application/vnd.ms-excel
        // image/jpeg jpg
        //  type: `msword`
        type: `application/msword`	// 'application/octet-stream' 代表所有扩展名,这里也可以不指定 type
      })
      let objectUrl = URL.createObjectURL(blob)
      let link = document.createElement('a')
      // 这里需要注意:
      //     取出来的fName可能带引号,如 "xxx.png", 这种情况需要再处理一下:fName.slice(1, -1)
      let fName = decodeURI(resp.headers['content-disposition'].split('=')[1])
      link.href = objectUrl
      link.setAttribute('download', fName)
      document.body.appendChild(link)
      link.click()
      // 下载完成移除元素
      document.body.removeChild(link)
      // 释放掉blob对象
      window.URL.revokeObjectURL(objectUrl)
    }
    // this.$request.xxx()  是因为我将axios重新进行了封装
    this.$Request.getFiles({
      data: sendData,
      responseType: 'blob',	// **********这里的响应类型必须设置为'blob'
      success: successCallBack,
      requestDataType: 'form-data'
    })
  }

更详细的请参考:https://blog.csdn.net/CarryBest/article/details/102586653

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值