首页 教程 Web前端 前端vue实现各种文件的预览,

前端vue实现各种文件的预览,

公司最近需求当用户实现对文件上传之后,用户需要对所上传的文件进行点击查看当前文件的内容,不同文件的类型太多,对部分文件进行了处理预览,例如:pkl、mps、txt、md、doc、xlsx、pdf、json、csv、py、png、jpg

先说对 [".txt", ".md", ".json", ".pkl", ".mps", ".py"] 

[".txt", ".md", ".json", ".pkl", ".mps", ".py"]预览

这些类的文件本身是对于文件内容文本所预览,如果没有太大的样式追求,推荐使用 VAceEditor 这个插件,

vue3-ace-editor 是一个基于 Ace Editor(流行的 web 前端代码编辑器)封装的 Vue 3 组件库,它允许在 Vue 程序中轻松集成和自定义 Ace 编辑器的功能。

支持多种编程语言的语法高亮、自动补全、主题切换、多语言支持等高级特性,使得开发者能够构建功能丰富的在线代码编辑器或 JSON 格式查看与编辑器等功能。

适用于开发IDE、在线代码编辑器、JSON编辑器等多种应用场景|。

这个是预览出来的结构
前端vue实现各种文件的预览,

一、安装

npm i vue3-ace-editor

前端vue实现各种文件的预览,

前端vue实现各种文件的预览,前端vue实现各种文件的预览,

自行对aceConfig这些属性可以配置,
当你通过某个事件去触发的时候可以去拿到地址去读取当前文件内容,我这里用某个函数去接受,拿到当前的完整地址发起请求去读取文件流,然后读取内容后追加放到结果中

前端vue实现各种文件的预览,

[".ipynb"];文件预览,

Ipynb文件跟一般文件不一样,这个文件里面会包含图片、代码、文本之类的、预览ipynb文件就需要将文件流转换成html进行预览,

这里要运用到一些插件

npm install marked ansi_up dompurify jsdom npm install prismjs npm install babel-plugin-prismjs

开源地址:vue-ipynb: Demo to view a .ipynb (python notebook) file with VUE.

它进行预览是通过上传文件拿到文件流的时候进行预览,而我做的是后端返回地址,通过地址发请求读取文件流,
前端vue实现各种文件的预览,

它的开元nb文件某些情况下可能会执行报错,图片可能会预览不出来,我自己稍作了些修改,ipynb文件的图片为统一为base64格式,不然图片就不会显示出来
前端vue实现各种文件的预览,

它的这一块即是我进行修改的地方,

它的nb.parse方法接收的是两个参数我们通过读取文件流之后给的是一个参数,
前端vue实现各种文件的预览,他源文件这个地方也要修改,不然就会导致底层报错,
前端vue实现各种文件的预览,

如果报错之类的都解决掉了之后,读取文件流之后将转换成html结构,预览出来的效果就是这样的
前端vue实现各种文件的预览,

这个结果就是html形式,

[".doc", ".docx", ".pdf", ".xlsx", ".csv"];

前面四种有专门的插件很好预览,

npm i @vue-office/excel

npm i @vue-office/pdf
npm i @vue-office/docx
前端vue实现各种文件的预览,

这个是模板部分 直接将你完整的地址传递到src属性里面
前端vue实现各种文件的预览,这个是script里面,你也可以通过不同的末尾去判断显示那个文件

csv文件预览

这个文件预览要用到插件,

papaparse
下载

npm i papaparse

使用这个插件会有一个bug 比如说你的csv文件里面有中文,这个中文预览出来的效果就会是一堆乱码的样子,比如它自带的encoding配置只能对通过input上传的本地文件起作用,而通过URL远程取到的文件不支持

先用XMLHttpRequest()获取到文件,然后再用FileReader()改变文件的编码,最后用PapaParse直接解析
前端vue实现各种文件的预览,

前端vue实现各种文件的预览,

渲染出来的表格是没有边框样式的,可以自行用css进行加
前端vue实现各种文件的预览,

预览出来的效果就是这样

前端vue实现各种文件的预览,

看业务要求,有些文件是无法进行预览,可以商量直接下载

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.15k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.21k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.12k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.08k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  482

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  308

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。