vue点击pdf文件直接在浏览器中预览文件
好久没有更新文章了,说说为什么会有这篇文章呢,其实是应某个热线评论的要求出的,不过由于最近很长一段时间没打开csdn现在才看到,所以才会导致到现在才出。
先来看看封装完这个预览方法的使用,主打一个方便使用:
id:为文件id
name:为文件名称
ajaxDownLoadFile(id, name)
没错就是这么简单,调用这个函数传入id和name就可以实现
进入正题,我们需要怎么去封装这么个预览pdf的工具呢。
其实我们ajaxDownLoadFile这个方法的功能主要是通过传入id和name然后去实现预览pdf文件,如果不是pdf文件的话,点击后我们应该是有一个下载的功能。
实现我们说的这两个点,主要是下面这两个函数
ajaxDownLoadFile 下载文件
ajaxPrePdf预览文件
// 下载文件ajaxDownLoadFile(id: string, name?: string) {const strRegex = '(.pdf)$' // 用于验证后缀是否是pdfconst re = new RegExp(strRegex)// 如果文件名存在,同时文件为pdfif (name&& re.test(name.toLowerCase())) {return ajaxPrePdf(id)} else {//不为pdf的文件,直接请求接口下载文件return new Promise((resolve, reject) => {service.get({url: XXX + id,responseType: 'blob'}).then(res => {resolve(res)}).catch(err => reject(err))})}},// 预览文件ajaxPrePdf(id: string) {return new Promise((resolve, reject) => {service.get({url: XXX + id,responseType: 'arraybuffer'}).then(res => {const file = new Blob([res as any], {type: 'application/pdf'})const fileUrl = window.URL.createObjectURL(file)window.open(fileUrl)resolve(res)}).catch(err => reject(err))})}
所以其实真正实现预览文件的功能的其实就是ajaxPrePdf这个函数。
我们通过封装的方式,让这个方法可以在我们整个项目中使用,甚至其他项目需要到pdf预览其他文件下载的功能,我们也可以直接拿过去用。主打一个简单实用。
相关文章:
vue点击pdf文件直接在浏览器中预览文件
好久没有更新文章了,说说为什么会有这篇文章呢,其实是应某个热线评论的要求出的,不过由于最近很长一段时间没打开csdn现在才看到,所以才会导致到现在才出。 先来看看封装完这个预览方法的使用,主打一个方便使用&#x…...
通讯网关软件012——利用CommGate X2OPC实现MS SQL数据写入OPC Server
本文推荐利用CommGate X2OPC实现从MS SQL服务器获取数据并写入OPC Server。CommGate X2OPC是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,实现从MS SQL数据库获取数据并写入OPC Server。 【…...
ISE_ChipScope Pro的使用
1.ChipScope Pro Core Inserter 使用流程 在之前以及编译好的流水灯实验上进行学习 ChipScope的使用。 一、新建一个ChipScope 核 点击Next,然后在下一个框中选择 Finish,你就会在项目菜单中看到有XX.cdc核文件。 二、对核文件进行设置 右键“Synthesize – XST” …...
北邮22级信通院数电:Verilog-FPGA(2)modelsim北邮信通专属下载、破解教程
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 1.下载 2.解压打开 3.modelsim初安装 4.…...
【力扣-每日一题】213. 打家劫舍 II
class Solution { public:int getMax(int n,vector<int> &nums){int a0,bnums[n],c0;for(int in1;i<nums.size()n-1;i){ //sizen-1,为0时,第一个可以偷,最后一个不能偷size-1;n为1时,最后一个可偷,计算…...
【PDF】pdf 学习之路
PDF 文件格式解析 https://www.cnblogs.com/theyangfan/p/17074647.html 权威的文档: 推荐第一个连接: PDF Explained (译作《PDF 解析》) | PDF-Explained《PDF 解析》https://zxyle.github.io/PDF-Explained/ https://zxyle…...
排序算法二 归并排序和快速排序
目录 归并排序 快速排序 1 挖坑法编辑 2 Hoare法 快排的优化 快排的非递归方法 七大排序算法复杂度及稳定性分析 归并排序 归并排序是建立在归并操作上的一种有效的排序算法,将以有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,在使子序列段间有序.若将两…...
活动回顾 | 暴雨也无法阻挡的奔赴,2023 Meet TVM · 深圳站完美收官!
2023 Meet TVM 深圳站于 2023 年 9 月 16 日在腾讯大厦成功举办,百余名参与者亲临现场,聆听讲师们的精彩分享。 作者 | xixi 编辑 | 三羊 本文首发于 HyperAI 超神经微信公众平台~ **由 MLC.AI 社区和 HyperAI超神经主办,Openbayes贝式计算…...
JAVA_多线程的实现方式
线程的状态 方式一: public class Thread1 extends Thread {Overridepublic void run() {synchronized (this) {for (int i 0; i < 100; i) {System.out.println(getName() "" i);}}} } Thread1 thread1 new Thread1(); thread1.start(); 方式二…...
Android AndroidStudro版本gradle版本对应
详情网站:Android studio版本对用的gradle版本和插件版本(注意事项)...
Windows所有的端口及端口对应的程序
Windows所有的端口及端口对应的程序 1.查询Windows的端口 在CMD窗口运行: netstat -ano 结果示例: 活动连接协议 本地地址 外部地址 状态 PIDTCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1156T…...
【Kafka系列】(二)Kafka的基本使用
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 文章更新计划[2] 系列文章地址[3] Kafka 线上集群部署方案怎么做 操作系统 先说结论,Kafka 部署在 Linux 上要比 Window…...
2023年下半年软考高级系统架构设计师论文指南(收藏)
由于今年下半年软考改为了机考,所以今年是看大家码字的速度了,但是好处还是有的,错了还能删除,之前纸质的 还有点不方便。 1、选择题目 (1)控制选题的时间。不要浪费太多时间在纠结选题上面。 ÿ…...
数据结构之【动态数组】
1. 线性表 概念:线性表是n个具有相同特性的数据元素的有限序列。 常见的线性表有:数组、链表、栈、队列、字符串…… 特点: 保存在这个结构中的元素都是相同的数据类型。元素之间线性排列,元素之间在逻辑上是连续的。 线性表…...
解答嵌入式和单片机的关系
嵌入式系统是一种特殊的计算机系统,用于特定任务或功能。而单片机则是嵌入式系统的核心部件之一,是一种在单个芯片上集成了处理器、内存、输入输出接口等功能的微控制器。刚刚好我这里有一套单片机保姆式教学,里面有编程教学、问题讲解、语言…...
利用Pycharm将python程序打包为exe文件(亲测可用)
最近做了一个关于py的小项目,对利用Pycharm将python文件打包为exe文件不是很熟悉,故学习记录之。 目录 一、下载pyinstaller库 二、打开Pycharm进行打包(不更改图标) 三、打开Pycharm进行打包(更改图标)…...
解决Vue设置图片的动态src不生效的问题
一、问题描述 在vue项目中,想要动态设置img的src时,此时发现图片会加载失败。在Vue代码中是这样写的: 在Vue的data中是这样写的: 我的图片在根目录下的static里面: 但是在页面上这个图片却无法加载出来。 二、解决方案…...
企业关键数据采集如何做
数据对于企业的重要性不言而喻,目前又处于大数据时代,企业对于数据的解读将是辅助决策最重要的一环。依据所掌握的数据信息,帮助企业做决策的优化。然而,在企业的关键数据采集并不是一项简单轻松的任务,他需要企业投入…...
抖音SEO矩阵系统源码开发搭建
1. 确定需求和功能:明确系统的主要目标和需要实现的功能,包括关键词研究、短视频制作、外链建设、数据分析、账号设置优化等方面。 2. 设计系统架构:根据需求和功能确定系统的架构,包括前端、后端、数据库等部分的设计࿰…...
20230925工作心得
1、如果使用map的时候,担心key重复,覆盖掉值 那么直接加个if/else判断就好了。 如果map.containsKey,那么就把值追加上去,否则就直接put。 2、list的removeAll方法 list.removeAll(list2);//list要removeAll谁,就是看list自己比…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
