vue使用文件流和url下载文件

这篇具有很好参考价值的文章主要介绍了vue使用文件流和url下载文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

// 改为使用后台返回url下载文件

方法1:这个会导致在点击下载按钮的时候,页面会跳转到奇怪的url。

window.location.href = row.downloadUrl

方法2:点击下载按钮,不会在新窗口打开。

const downloadRes = async () => {

        let response = await fetch(row.downloadUrl)

        let blob = await response.blob()

        let objectUrl = window.URL.createObjectURL(blob)

        let a = document.createElement('a')

        a.href = objectUrl

        a.download = row.fileName

        a.click()

        a.remove()

      }

      downloadRes()

// 后台返回文件流下载文件

     fileDownload(row.id).then((res) => {

            this.downloadFile(res, row.taskName)

    })

fileDownload是下载的接口地址,看下图

export function fileDownload(id) {
  return request({
    url: '/vehicle/offlineFile/download/' + id,
    method: 'get',
    responseType: 'blob',
  })
}

downloadFile方法代码如下:

// 通用下载方法

export function downloadFile(data, filename) {

  const content = data

  const blob = new Blob([content], {

    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' //文件类型

  })

  if ('download' in document.createElement('a')) {

    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)

    document.body.removeChild(elink)

  } else {

    navigator.msSaveBlob(blob, filename)

  }

}文章来源地址https://www.toymoban.com/news/detail-413676.html

到了这里,关于vue使用文件流和url下载文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 中从后端获取到文件的 url 地址,前端根据 url 地址下载文件

    项目用的是 vben admin 框架,用的是 vue3 + TS 项目需求数据导出功能,前端需要实现文件下载功能 后端返回的是文件的 url 地址 (本项目中返回的是阿里云 oss 的文件地址) 从后端得到的是一个 url 地址,先通过 fetch api 请求这个 url 地址并转换成 blob 对象,通过 URL.createObjectUrl() 将 blo

    2024年02月06日
    浏览(49)
  • Java通过文件流和文件地址下载文件

    如何使用 MultipartFile 进行文件上传、下载到本地,并返回保存路径呢: 用于在 Spring Boot 应用中获取文件流,然后处理上传的文件,将文件保存到指定目录并返回保存的文件路径。下面对代码的各个部分进行简要介绍: 上传目录设置 :在这个示例中, UPLOAD_DIR 常量用于定义上

    2024年02月12日
    浏览(48)
  • 后端返回URL,前端如何实现下载

    1. 在实际开发过程中,实现文件下载功能,后端一般是返回一个文件流,我们只需要拿到这个文件流后,再使用 new Blob转化成blob格式 的数据,然后 创建一个a链接元素 进行下载就行了: (“本段代码是之前写案例时从别处copy的,都有注释省了自己写,哈哈哈,侵删”) 2. 但

    2024年02月04日
    浏览(45)
  • vue中,给一个URL地址,利用FileSaver.js插件下载文件到本地

    ①首先下载 FileSaver.js 插件    ②在需要的.vue页面引入  在HTML中引入 ③ 如果想保存一个TXT文档本地 结果:   内容:    ④ 如果想保存一个图片 结果:  图片内容:  如果图片不允许跨域则会出现这种情况:   ⑤下面这个方法则可以完美的解决跨域问题,不光可以下载图

    2024年02月06日
    浏览(58)
  • Vue实战【后端返回文件流时,前端如何处理并成功下载流文件】

    哈喽小伙伴们,在我们日常工作当中,大家一定会遇到 文件导出 这样的功能需求点;导出功能前端后端都可以实现,通常情况下呢是由我们后端同事去处理的,那么当我们后端同事给你返回文件流的时候,前端要怎么处理并且完成下载呢?今天就给大家说个简单的方法,我

    2024年02月11日
    浏览(42)
  • vue 后端返回二进制流-前端通过blob对象下载文件-图片

    前言 在实际开发中我们经常会遇见下载文件的场景,比如下载合同,下载文件 下载文件有2种方式,一种是后端返回二进制流,前端通过blob对象接受根据不同类型下载 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载,其他文件直接下载 但不管是那种方

    2024年02月05日
    浏览(81)
  • Vue3 - 详细实现下载从服务端返回的文件流 Blob 对象教程,前端下载后端接口返回的文件流并自动保存到本地,支持任何格式的文件下载(从后端拿到二进制文件流 Blob 对象,前端实现点击下载功能)

    调用服务端(后端)接口拿到文件流,通过前端下载并保存到本地。 本文 实现了在 vue3 项目中,通过后端接口返回的二进制文件流 Blob 对象,在前端进行点击下载并保存到用户本地,任何格式的文件都可以轻松下载, 保证您直接复制代码,改个请求地址就可以使用了, 如下

    2024年02月04日
    浏览(211)
  • 跨域情况下,vue如何下载后台接口提供的application/octet-stream文件流Excel文件

    由于跨域,所以无法直接通过window.location.href或者a标签直接下载,直接拼后台接口地址又暴露了后台地址,不可行。 所以在这种跨域情况下,本章讲一下vue如何下载后台接口提供的application/octet-stream文件流Excel文件。 实现前端vue下载后台返回的application/octet-stream文件流 1、使

    2024年02月14日
    浏览(42)
  • .net6Api后台+VUE3前端实现上传和下载文件全过程

    首先本文参考的是,感谢博主: net6WebApi上传下载文件_cduoa的博客-CSDN博客_webapi下载文件 在博主的基础上,增加了新的功能,代码中有注明,并且使用VUE3前端实现。 后端部分: 1.首先建立IFileService文件 2.建立FileService文件 3.增加FileController文件 4.Program文件中,进行配置和跨域

    2023年04月09日
    浏览(56)
  • 【vue2】前端实现下载后端返回的application/octet-stream文件流

    1、下载csv/txt时 此时无须修改接口的响应格式 2、下载Excel时,需要修改一下接口的响应格式为blob 另

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包