前端Vue通过Minio返回的URL下载文件实现方法

 更新时间:2024年07月05日 09:18:15   作者:諵溪丶  
Minio是一个灵活、高性能、开源的对象存储解决方案,适用于各种存储需求,并可以与云计算、容器化、大数据和应用程序集成,这篇文章主要给大家介绍了关于前端Vue通过Minio返回的URL下载文件实现的相关资料,需要的朋友可以参考下

最近在使用下载Minio实现下载文件时遇到的一些问题,前端直接点击后端返回的URL不可以调用下载而是直接预览,下面将我实现的方法分享:

1、数据库File表

2、通过文件id查询相关数据

FileController接口

FileServiceImpl实现类

3、前端这样操作:

const fileId = '1783377440079638530'
      downloadFile(fileId).then(res => {
        if (res.code === '0000') {
          // window.open(res.data)
          const downloadLink = document.createElement('a')
          // 将地址url转成blob地址
          fetch(res.data.url).then(res => res.blob()).then(blob => {
            downloadLink.href = URL.createObjectURL(blob)
            // 下载文件的名称
            downloadLink.download = res.data.fileName
            document.body.appendChild(downloadLink)
            downloadLink.click()
            // 清除 占用的缓存资源
            window.URL.revokeObjectURL(downloadLink.href)
            document.body.removeChild(downloadLink)
          })
        }
      })

4、点击相应按钮即可弹出下载框:下载文件、保存到电脑相应位置。

附:Minio中文路径造成无法下载问题解决办法

Minio中文路径造成无法下载问题.net core解决办法

//后端需要对含有中文的路径进行加密 
var encodedFilePath= Encoding.UTF8.GetString(Convert.FromBase64String(filePath));
var lastFilePath = HttpUtility.UrlDecode(encodedFilePath);
// 前端使用TS, 对url 进行编码
encodeURIComponent(imagePath)

总结 

到此这篇关于前端Vue通过Minio返回的URL下载文件实现方法的文章就介绍到这了,更多相关Vue Minio返回URL下载文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue文件批量上传及进度条展示的实现方法

    vue文件批量上传及进度条展示的实现方法

    开发项目的时候,用到文件上传的功能很常见,包括单文件上传和多文件上传,下面这篇文章主要给大家介绍了关于vue文件批量上传及进度条展示的实现方法,需要的朋友可以参考下
    2022-12-12
  • vue+vite+diff.js使用小结

    vue+vite+diff.js使用小结

    本文主要介绍了vue+vite+diff.js使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • vue使用js-file-download完成导出功能实例

    vue使用js-file-download完成导出功能实例

    这篇文章主要介绍了vue使用js-file-download完成导出功能实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Vuex中State的使用方法

    Vuex中State的使用方法

    这篇文章主要介绍了Vuex中State的使用方法,Vuex 使用单一状态树,用一个对象就包含了全部的应用层级状态,这也意味着,每个应用将仅仅包含一个 store 实例,需要的朋友可以参考下
    2023-11-11
  • 解决VUE打包后与nginx代理出现加载速度超级慢的问题

    解决VUE打包后与nginx代理出现加载速度超级慢的问题

    这篇文章主要介绍了解决VUE打包后与nginx代理出现加载速度超级慢的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 使用vue制作FullPage页面滚动效果

    使用vue制作FullPage页面滚动效果

    本篇文章主要介绍了使用vue制作FullPage页面滚动效果,详细的介绍了FullPage页面的思路和实现,有兴趣的可以了解一下
    2017-08-08
  • 浅析vue中$nextTick的作用与原理

    浅析vue中$nextTick的作用与原理

    这篇文章主要为大家详细介绍一下Vue中$nextTick的作用于原理,这也是面试中常常考到的问题,文中的示例代码讲解详细,对我们深入了解Vue有一定的帮助,需要的小伙伴可以参考一下
    2023-10-10
  • 前端Vue设置cookie、删除cookie,获取cookie方式

    前端Vue设置cookie、删除cookie,获取cookie方式

    这篇文章主要介绍了前端Vue设置cookie、删除cookie,获取cookie方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vuejs 单文件组件.vue 文件的使用

    vuejs 单文件组件.vue 文件的使用

    本篇文章主要介绍了vuejs 单文件组件.vue 文件的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • vue2中Print.js的使用超详细讲解(pdf、html、json、image)

    vue2中Print.js的使用超详细讲解(pdf、html、json、image)

    项目中有用到打印功能,网上就找了print.js,下面这篇文章主要给大家介绍了关于vue2中Print.js使用(pdf、html、json、image)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03

最新评论