vue实现预览PDF、Excel、Docx、Txt、PPT文件的功能

news/2024/11/29 6:52:59/

目录:

        一、实现步骤

        二、实现效果

代码真实可用!

一、实现步骤:

1、使用的是vue和elementUI,

假设有这些变量:attachment是附件的意思

data() {return {previewDialog: false,attachmentSrc: '',attachmentList: [{name: 'example1.docx',path: 'https://vfdgfdsgdfsgfg/attachment/example1.docx'},{name: 'example2.pdf',path: 'https://vfdgfdsgdfsgfg/attachment/example2.pdf'},{name: 'example3.txt',path: 'https://vfdgfdsgdfsgfg/attachment/example3.txt'},{name: 'example4.xlsx',path: 'https://vfdgfdsgdfsgfg/attachment/example4.xlsx'}]}}

2、页面代码:

主要是用 iframe 组件,src地址即为要展示的文件地址

<!-- 这段代码是界面显示 -->
<div v-for="attachment in attachmentList"><el-link :key="attachment.path" :href="attachment.path"style="display: inline-block;"  type="success" :underline="false">{{ attachment.name }}</el-link><el-button type="text" style="display:inline-block;margin-left:30px;" icon="el-icon-view" v-on:click="previewFile(attachment)">预览</el-button>
</div><!-- 点击上面的预览按钮会弹出文件预览框 -->
<el-dialog :close-on-click-modal="true" title="文件预览" type="primary"             :visible.sync="previewDialog"  width="80%" left><iframe :src="attachmentSrc" frameborder="0" width="100%" height="600"></iframe><div slot="footer" class="dialog-footer"><el-button type="primary" v-on:click="previewDialog = false">关闭</el-button></div>
</el-dialog>

3、methods中的函数:

word、xls、ppt这些文件要用 微软官方的预览地址

注意:1. 文件地址必须公网;2. 静态资源不要有访问权限

最后,你控制的只是src地址

微软解析地址:https://view.officeapps.live.com/op/view.aspx?src=你的文件地址

methods: {// 预览文件previewFile(attachment) {// 根据文件格式显示预览内容const fileExtension = attachment.path.split('.').pop().toLowerCase()if (fileExtension === 'xlsx' || fileExtension === 'docx') {this.attachmentSrc = 'https://view.officeapps.live.com/op/view.aspx?src=' + attachment.path}else{this.attachmentSrc = attachment.path}this.previewDialog = true}
}



二、实现效果:

操作界面:

word文件预览:

Excel文件预览;

PDF文件预览:

 TXT文件预览:


http://www.ppmy.cn/news/245323.html

相关文章

电脑搭配问题

作者&#xff1a;知乎用户 链接&#xff1a;https://www.zhihu.com/question/19912421/answer/76728716 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 一、配件选购&#xff1a; DIY新机一般由以下部分组成&#xff…

2020年的618快来了,电脑该怎么选

冰小柠柠柠 先上配置单&#xff0c;选好了CPU&#xff0c;就会有对应的主板型号&#xff0c;主板选好了&#xff0c;其它配件就知道怎么搭配了。 以下推荐的&#xff0c;都是性价比较高的配件。基本可以直接买。 先从低价推荐。价格不保护显示器&#xff0c;键盘&#xff0c…

七、帧缓冲离屏渲染

第一部分基础概念 1)两种帧缓冲的由来 首先opengl能够显示到屏幕&#xff0c;也是有一个默认的framebuffer由窗口系统创建并管理的&#xff0c;将数据放到默认framebuffer 中就可以显示到屏幕上。但是应用程序也想创建额外的非可显示的framebuffer。 应用程序自己创建FBO也是…

没事千万别动生产服数据库 - 来自小菜鸟的忠告

阿里云官方参考文档 目录 背景一、环境部署二、目录规划三、操作步骤FAQ 背景 今天把一张 5500 多万条记录的表进行按年度拆分&#xff0c;本来打算将表数据拆分为 2020 年、2021 年、2022 年三张新表&#xff0c;提升原表查询效率&#xff0c;仅保留 2023 年数据。表拆分完毕…

《C++高级编程》读书笔记(二:使用string和string_view)

1、参考引用 C高级编程&#xff08;第4版&#xff0c;C17标准&#xff09;马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门&#xff0c;笔记链接如下 21天学通C读书笔记&#xff08;文章链接汇总&#xff09; 1. 动态字符串 1.1 C 风格的字符串 在 C 语言中&#xff0c;字…

mysql中float、double、decimal的区别

float类型表示单精度浮点数值&#xff0c;double类型表示双精度浮点数值&#xff0c;float和double都是浮点型&#xff0c;而decimal是定点型&#xff1b; MySQL 浮点型和定点型可以用类型名称后加&#xff08;M&#xff0c;D&#xff09;来表示&#xff0c;M表示该值的总共长…

苏泊尔耗的JPEG解码器[三]

主控单元。包含普通和渐近两种方式的解码。 头文件 jpegdec2.h&#xff08;为什么是2呢&#xff1f;因为两年前有一个一代的版本&#xff0c;不过还没问市就被卡嚓了-___-b 默哀ing...&#xff09; /*********************************************************************…

苏泊尔H1快报:增收不增利,小家电也焦虑

随着国民经济的快速发展&#xff0c;我国消费逐渐升级&#xff0c;消费者在满足了大家电的传统需求后&#xff0c;对小家电的消费需求也在逐渐上涨。今年苏泊尔的股价却出现了大幅下降&#xff0c;从今年上半年最高点81.47元跌至7月26日的收盘价52.75元&#xff0c;另外从5月27…