火狐浏览器直接查看导出的文件兼容问题

发布于 2022-09-12 03:42:37 字数 2648 浏览 25 评论 0

  1. 用火狐浏览器
  2. 导出scv文件
  3. 选择直接打开
  4. 扩展名.scv后自动拼接了.xlsx ,且用xlsx打不开

image.png
image.png

代码如下:
``

exportF () {
  if (this.auditLoadingObj && this.auditLoadingObj[this.key]) return false
  this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: true })
  let filter = this.getParams()
  projectApi
    .getAuditExport(filter, this.namespaceid)
    .then(res => {
      let params = {
        res, 
        type:
          'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 
        Suffix: 'csv',
        title: '审计'
      }
      downloadAPI(params)
      this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: false })
    })
    .catch(res => {
      this.$store.commit('user/CHANGE_LOADINGOBJ', { [this.key]: false })
    })
}


`` 
export function downloadAPI (params) {
  const res = params.res
  const type = params.type
  const Suffix = params.Suffix
  const title = params.title
  const noDate = params.noDate ? params.noDate : false
  // 创建blob
  const blob = new Blob([res], { type: type })
  // 创建时间戳
  let date = resetDateTime(new Date().getTime()).replace(/[- | :]/g, '')
  if (noDate) {
    date = ''
  }
  // 创建下载的链接
  const downloadElement = document.createElement('a')
  const href = window.URL.createObjectURL(blob)
  // 判断浏览器
  if (myBrowser() === 'IE' || myBrowser() === 'Edge') {
    // IE专属下载方法
    navigator.msSaveBlob(blob, title + date + '.' + Suffix)
  } else {
    downloadElement.href = href
    // 下载后文件名

    downloadElement.download = title + date + '.' + Suffix

    document.body.appendChild(downloadElement)
    // 点击下载
    downloadElement.click()
    // 下载完成移除元素
    document.body.removeChild(downloadElement)
    // 释放掉blob对象
    window.URL.revokeObjectURL(href)
  }
}

// 判断浏览器类型
export function myBrowser () {
  var userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
  var isOpera = userAgent.indexOf('Opera') > -1
  if (isOpera) {
    return 'Opera'
  } // 判断是否Opera浏览器
  if (userAgent.indexOf('Firefox') > -1) {
    return 'FF'
  } // 判断是否Firefox浏览器
  if (userAgent.indexOf('Chrome') > -1) {
    return 'Chrome'
  }
  if (userAgent.indexOf('Safari') > -1) {
    return 'Safari'
  } // 判断是否Safari浏览器
  if (
    userAgent.indexOf('compatible') > -1 &&
    userAgent.indexOf('MSIE') > -1 &&
    !isOpera
  ) {
    return 'IE'
  } // 判断是否IE浏览器
  if (userAgent.indexOf('Trident') > -1) {
    return 'Edge'
  } // 判断是否Edge浏览器
}

``

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃气十足 2022-09-19 03:42:37

这个是浏览器采用默认打开保存临时文件修改了扩展名问题,其实你直接保存再打开应该就没有这样的问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文