Vue+ElementUI实现文件照片音频视频预览

ops/2024/10/19 9:33:08/

1. 需求是点击预览按钮  根据文件名的后缀去实现预览

2. 具体实现代码及逻辑

1.预览弹框
<el-dialog:visible.sync="visibleFile"width="40%":close-on-click-modal="false"@close="cancelHandler":append-to-body="true"><audiostyle="width: 100%;height: 100px;padding: 30px;margin-top: 10px;"v-if="isVideo"controls:src="previewUrl"></audio><videostyle="padding: 20px; margin-top: 20px"v-if="isAudio"width="100%"height="600"controls:src="previewUrl"></video><iframev-if="isExcel":src="excelPreviewUrl"frameborder="0"width="100%"height="600"></iframe><divstyle="width: 100%;height: 600px;display: flex;justify-content: center;align-items: center;"v-if="isImage"><imgclass="previewImg":src="previewUrl"alt=""style="max-width: 100%; max-height: 700px"/></div>
</el-dialog>
2.data定义isAudio: false, //视频isVideo: false, //音频isImage: false, //照片isExcel: false, //文件excelPreviewUrl: "", //文件地址previewUrl: "", //视频、音频、照片、文件地址
3.methodscancelHandler() {this.visibleFile = false;},// 预览会传把这一行的文件名拿到 然后取到后缀名,根据后缀名进行判断previewHandle(val) {this.visibleFile = true;if (val.fileExtension == "mp3") {this.previewUrl = val.materialUrl;this.isVideo = true;this.isAudio = false;this.isExcel = false;this.isImage = false;} else if (val.fileExtension == "mp4") {this.previewUrl = val.materialUrl;this.isAudio = true;this.isVideo = false;this.isExcel = false;this.isImage = false;} else if (val.fileExtension == "xlsx" || val.fileExtension == "xls") {const encodedFileUrl = encodeURIComponent(val.materialUrl); // 对文件URL进行编码this.excelPreviewUrl = `https://view.officeapps.live.com/op/view.aspx?    src=${encodedFileUrl}`;// 显示预览this.isAudio = false;this.isVideo = false;this.isExcel = true;this.isImage = false;} else {this.previewUrl = val.materialUrl;// 显示预览this.isAudio = false;this.isVideo = false;this.isExcel = false;this.isImage = true;}},

 

 


http://www.ppmy.cn/ops/24372.html

相关文章

足球滚球数据分析靠谱吗?能不能通过大模型去实时预测?

足球滚球数据分析在一定程度上是靠谱的&#xff0c;但并非绝对可靠。滚球数据分析主要依赖于大量的历史数据、实时比赛数据以及相关的统计模型来预测比赛结果。这些数据可以包括球队的实力对比、球员状态、比赛进程、进球趋势、控球率变化等多个方面。 通过深入分析和挖掘这些数…

ES全文检索支持拼音和繁简检索

ES全文检索支持拼音和繁简检索 1. 实现目标2. 引入pinyin插件2.1 编译 elasticsearch-analysis-pinyin 插件2.2 安装拼音插件 3. 引入ik分词器插件3.1 已有作者编译后的包文件3.2 只有源代码的版本3.3 安装ik分词插件 4. 建立es索引5.测试检索6. 繁简转换 1. 实现目标 ES检索时…

Ansible-Tower安装破解

主机IP地址版本Ansible192.168.169.2042.9.1Tower192.168.169.2043.6.2 基础环境 systemctl disable firewalld --now && setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config mv /etc/yum.repos.d/CentOS-* /tmp/ curl -o /etc/yum.repo…

rpc和http的区别,使⽤场景

a. 区别&#xff1a; 传输协议 RPC:可以基于TCP协议&#xff0c;也可以基于HTTP协议 HTTP:基于HTTP协议 传输效率 RPC:使⽤⾃定义的TCP协议&#xff0c;可以让请求报⽂体积更⼩&#xff0c;或者使⽤HTTP2协议&#xff0c;也可以很好的减少报⽂的体积&#xff0c;提⾼传输效…

【Web】D^3CTF之浅聊d3pythonhttp——TE-CL请求走私

目录 step0 题目信息 step1 jwt空密钥伪造 step1.5 有关TE&CL的lab step2 TE-CL请求走私 payload1 payload2 step0 题目信息 注意到题目源码前端是flask写的&#xff0c;后端是web.py写的 frontend from flask import Flask, request, redirect, render_templat…

Chrome 插件如何开发?

开发 Chrome 插件涉及几个关键步骤&#xff0c;包括了解 Chrome 插件的架构、编写必要的代码、测试和发布。以下是开发 Chrome 插件的基本流程&#xff1a; 1. 了解 Chrome 插件的基础知识&#xff1a; - Chrome 插件通常由 HTML、CSS 和 JavaScript 文件组成。 - 它们可…

数据结构C[栈]

在C语言中&#xff0c;栈是一种常见的数据结构&#xff0c;它遵循"先进后出"&#xff08;Last In First Out&#xff0c;LIFO&#xff09;的原则。栈通常用于存储函数调用、局部变量和临时数据等。 C语言中对栈的描述可以从以下几个方面来介绍&#xff1a;1. 栈的实现…

yo!这里是网络入门初识

目录 前言 基本概念 网络 协议 地址 网络传输流程 OSI七层模型 TCP/IP四层&#xff08;五层&#xff09;模型 流程图 数据封装&&分用 后记 前言 对于上一个专栏——Linux操作系统&#xff0c;我们学习了操作系统的基础知识以及基本的系统编程&#xff0c;其…