小索同学 2018-11-23 08:41 采纳率: 0%
浏览 4803

通过ajax下载文件流本地封装的word和excel有问题

因为后台请求都得在header里面加token,普通的跳转url header加不上token会提示没有权限无法下载,
后来找见一篇通过ajax下载文件转成blob对象本地封装的办法,但是每次打开都会提示图片说明
图片说明

            代码如下

            ```
                downloadWord(row.id)
    .then((res) => { // 处理返回的文件流
      const content = res.data
      let temp = res.headers["content-disposition"]
      let isExcel = temp.indexOf(".xlsx") > 0 || temp.indexOf(".xls") > 0
      let isWord = temp.indexOf(".docx") > 0 || temp.indexOf(".doc") > 0
      let file = {}
      if(isExcel){
        file.type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
        file.name = temp.indexOf(".xlsx") > 0 ? 'xlsx' : 'xls'
      }else if(isWord){
        file.name = temp.indexOf(".docx") > 0 ? 'docx' : 'doc'
        file.type = 'application/msword;charset=UTF-8'
      }
      // const blob = new Blob([content], {type: res.data.type})
      const blob = new Blob([content], {type: file.type})
      const fileName = `${row.title}.${file.name}`
      if ('download' in document.createElement('a')) { // 非IE下载
        const elink = document.createElement('a')
        elink.download = fileName
        elink.style.display = 'none'
        elink.href = URL.createObjectURL(blob)
        document.body.appendChild(elink)
        elink.click()
        URL.revokeObjectURL(elink.href) // 释放URL 对象
        document.body.removeChild(elink)
      } else { // IE10+下载
        navigator.msSaveBlob(blob, fileName)
      }
  })
        ```
  • 写回答

1条回答 默认 最新

  • devmiao 2018-11-23 15:26
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型