当前位置: 首页 > news >正文

SpringBoot+Vue实现各种文件预览(附源码)

👨‍💻作者简介:在笑大学牲

🎟️个人主页:无所谓^_^

 ps:点赞是免费的,却可以让写博客的作者开心好几天😎


项目运行效果

前言

在做项目时,文件的上传和预览必不可少。继上篇介绍了minio的文件上传,本文将介绍如何实现文件预览功能。大家如果没看过上篇文章建议大家先看下。

SpringBoot整合minio实现断点续传、分片上传(附源码)icon-default.png?t=N7T8https://blog.csdn.net/weixin_51603038/article/details/130408421

一、项目介绍

项目下载

gitee:https://gitee.com/wusupweilgy/springboot-vue.git

技术栈

前端:vue2、element-ui组件、axios、kkFileView

后端:springboot,minio,reids,myql

二、环境安装

1.kkFileView介绍

kkFileView 为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等

2.kkFileView安装

Windows上安装

  • 下载的 zip 压缩包解压后进入 bin 目录,双击 startup.bat 启动 kkFileView

  • 30秒后进入 log 目录查看 kkFileView.log 日志,打印【kkFileView 服务启动完成,耗时:26.8350973s,演示页请访问: http://127.0.0.1:8012 】显示这个页面则说明启动成功。

3.安装Minio

  • 解压minio.zip文件,记得看启动命令文件,然后复制命令,cmd控制台执行
  • 打开网址,账号密码都是minioadmin
  • 上传文件后,代码会自动创建bucket,记得设置bucket的权限为public

三、项目运行

1.运行后端工程

  • 创建wusuowei数据库,导入wusuowei.sql文件
  • 修改application-dev.yml文件,配置自己的数据库,redis
  • 运行启动类

2.运行前端工程

// 设置npm镜像
npm config set registry http://registry.npmmirror.com -g// 下载依赖
npm install// 运行
npm run serve

四、前端核心代码

预览:

lookonline(url) {console.log(url)window.open('http://127.0.0.1:8012/onlinePreview?url=' + encodeURIComponent(base64Encode.encode(url)));
},

下载:

// 下载文件
download(row) {axios.get(row.url,{responseType: 'blob'}).then((res)=>{console.log('文件下载成功');const blob = new Blob([res.data]);const fileName = row.fileName;//对于<a>标签,只有 Firefox 和 Chrome(内核) 支持 download 属性//IE10以上支持blob,但是依然不支持downloadif ('download' in document.createElement('a')) {//支持a标签download的浏览器const link = document.createElement('a');//创建a标签link.download = fileName;//a标签添加属性link.style.display = 'none';link.href = URL.createObjectURL(blob);document.body.appendChild(link);link.click();//执行下载URL.revokeObjectURL(link.href); //释放urldocument.body.removeChild(link);//释放标签} else {navigator.msSaveBlob(blob, fileName);}}).catch((res)=>{console.log('文件下载失败');});
},

小结

本文介绍了如何使用kkfileview和minio实现文件的分片上传和预览。希望本文可以帮助你进一步学习和掌握这两个技术。如果这篇文章有幸帮助到你,希望读者大大们可以给作者点个赞呀😶‍🌫️😶‍🌫️😶‍🌫️

相关文章:

  • IP 协议的相关特性
  • 「优选算法刷题」:计算布尔二叉树的值
  • Java学习day27:join方法、生产者消费者模式(知识点详解)
  • 通过 React 来构建界面
  • Android PMS——系统应用位置解析(四)
  • redis redisson报错 Unsupported protocol问题原因和解决方案
  • 微信小程序(二十八)网络请求数据进行列表渲染
  • 数据库管理-第143期 Oracle DB 19c需要调整的基本参数V2(20240202)
  • JSON字符串作为入参时,转换为具体对象
  • Leetcode—2881. 创建新列【简单】
  • VBA数据库解决方案第八讲:SQL语句及打开记录集
  • 图片热区功能
  • Flutter的安装与环境配置
  • 机器学习 | 如何利用集成学习提高机器学习的性能?
  • 030 可变参数
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 2017年终总结、随想
  • CentOS 7 防火墙操作
  • gitlab-ci配置详解(一)
  • Material Design
  • React as a UI Runtime(五、列表)
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Vim Clutch | 面向脚踏板编程……
  • Webpack 4 学习01(基础配置)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端性能优化——回流与重绘
  • 数据科学 第 3 章 11 字符串处理
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 网络应用优化——时延与带宽
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (4.10~4.16)
  • (c语言)strcpy函数用法
  • (floyd+补集) poj 3275
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (十一)c52学习之旅-动态数码管
  • (五)Python 垃圾回收机制
  • (转) Face-Resources
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bashrc在哪里,alias妙用
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net语言中的StringBuilder:入门到精通
  • @media screen 针对不同移动设备
  • [.net] 如何在mail的加入正文显示图片