createObjectURL的部分使用讲解

news2025/1/11 10:05:17

URL.createObjcetURL的部分详解

文章目录

  • URL.createObjcetURL的部分详解
    • 1. 为什么要使用createObjectURL
    • 2. createObjectURL的基本用法
    • 3. 转换后的文件进行展示或下载
      • 展示
      • 下载

首先,想记录一下这点是因为之前关于pdf文件的下载和预览,后端返回工作流时的处理,里面有关于createObjectUrl的使用,所以这里想专门对此进行一个详细的解释

1. 为什么要使用createObjectURL

它是js的一个函数,可以将Blob、file等二进制文件转换成浏览器可以直接显示的URL地址,从而进行展示、下载等操作,例如之前一个文章中关于pdf的预览和下载,后端返回的工作流就需要进行转换

2. createObjectURL的基本用法

创建一个Blob对象后,通过createObjectURL方法将Blob对象转换为URL地址

//这里先解释一下Blob, Blob就类似于是一个二进制大对象,可以以二进制数据的形式存储图片、音频、视频等文件
//可以通过构造函数创建一个Blob对象,可传的参数有两个,第一个参数是要转换的包含数据的数组,第二个参数是数据的MIME类型
//写法
 const blob=new Bolb(['要转换的文件'],{type:'转换文件的类型'})

常见的MIME类型:

在这里插入图片描述

更多的MIME类型可以参考https://www.w3school.com.cn/media/media_mimeref.asp

//这里我们以后端返回的工作流pdf文件为例
const blob=new Blob([response.data],{type: 'application/pdf')
const url=URL.createObjectURL(blob)

3. 转换后的文件进行展示或下载

展示

例如是图片的预览

<img :src='{{url}}' />
//这里的url就是通过createObjectURL转换得到的url
//如果是像上文提到的pdf可以通过创建dom,将url赋值给src,或者通过window.open(url)打开新窗口进行预览

下载

下载文件我们就要利用到 a标签上的download属性

<a :href='{{url}}' download='下载的文件名' >下载文件</a>
//也可以通过js的写法
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'pdfdocument.pdf');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);

要注意的是,使用完URL后,需要手动释放,否则可能造成内存泄露等问题
URL.revokeObjectURL(url)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

燃爆你的创作欲!3款剪辑小助手让你爱不释手

视频剪辑&#xff0c;既是门艺术&#xff0c;也是门手艺。现在&#xff0c;因为社交媒体和视频网站的流行&#xff0c;越来越多的人开始自己尝试做视频。不管你是想娱乐大家&#xff0c;还是教点东西&#xff0c;或者搞点商业宣传&#xff0c;一款好的剪辑软件都能帮你提高效率…

遇到“NavigableString“object has no attribute “text“的解决方法(全)

在 Python 的 Beautiful Soup 库中&#xff0c;NavigableString 对象用于表示解析树中的文本内容。 有时候在获取json格式&#xff0c;解析BeautifulSoup的时候&#xff0c;可能会遇到这个问题。 那可能是在 NavigableString 对象上调用 .text 属性&#xff0c;因此就会出现 …

21款美规奔驰GLS450更换中规高配主机系统,您带来更贴合国内使用习惯和更丰富功能的体验

简单一句中文的“您好&#xff0c;奔驰”&#xff0c;抑或是轻轻触碰屏幕&#xff0c;就能与同级最先进的智能人机交互系统来场深度沟通&#xff0c;实现你的各种需求 创造情感纽带&#xff0c;将车辆打造为您的专属座驾。功能扩展后的 MBUX 智能人机交互系统能满足您多方位的…

AutoMQ 开源可观测性方案:夜莺 Flashcat

01 引言 在现代企业中&#xff0c;随着数据处理需求的不断增长&#xff0c;AutoMQ [1] 作为一种高效、低成本的流处理系统&#xff0c;逐渐成为企业实时数据处理的关键组件。然而&#xff0c;随着集群规模的扩大和业务复杂性的增加&#xff0c;确保 AutoMQ 集群的稳定性、高可…

Python学习-字符串

目录 ord() 与 chr() 力扣题目-转换成小写字母 count()函数 ord() 与 chr() ord() 和 chr() 用于字符和字符编码&#xff08;通常是ASCII等&#xff09;之间的转换。 1. ord() ord() 函数用于获取一个字符&#xff08;通常是一个单字符字符串&#xff09;的编码值。在ASC…

服务器怎么开启远程桌面连接权限?开启远程桌面连接权限的详细操作步骤

服务器怎么开启远程桌面连接权限? 服务器开启远程桌面连接权限的步骤通常依赖于服务器的操作系统。以下是基于Windows服务器和Linux服务器的详细操作步骤&#xff1a; Windows服务器 1.打开服务器管理器&#xff1a; -登录到Windows服务器。 -点击“开始”菜单&…

提升效率的五款神器

大家好&#xff0c;我是你们的小红书效率专家&#x1f469;‍&#x1f4bb;&#xff01;今天要分享的是让你工作效率翻倍的五款软件利器&#xff0c;赶快拿出小本本记下来吧&#xff01;&#x1f31f; 1️⃣ 亿可达 - 软件连接器 作为一款自动化工具&#xff0c;亿可达被誉为…

内网基础——Windows认证

文章目录 一、本地认证二、网络认证2.1 NTLM协议2.1.1 Chalenge/Response2.1.2 总结2.1.3 Pass the Hash 2.2 Kerberos认证2.2.1 Kerberos认证协议的基础概念2.2.2 域认证粗略流程 三、Windows Access Token 一、本地认证 windows本地认证流程大致可以抽象为以下三个阶段&…

从源头解决砍单问题:Temu、亚马逊自养号采购防关联全攻略

近期有很多跨境卖家向珑哥咨询&#xff0c;他们在进行采购下单过程中会出现砍单的问题&#xff0c;其实造成这种的原因很多&#xff0c;一套稳定的测评系统并不是单解决IP的纯净度问题或者支付卡的卡头风控问题就可以解决的&#xff0c;Temu、亚马逊测评下单砍单率、F号率高的原…

是德KEYSIGHT B1500A 半导体测试仪

安捷伦Agilent/KEYSIGHT B1500A/b1506a/B1505A半导体测试仪 附加功能&#xff1a; 基于 PC 的仪器&#xff0c;配备 Microsoft Windows 操作系统和 EasyEXPERT 软件用于电流-电压 (IV)、电容-电压 (CV)、脉冲生成、快速 IV 和时域测量的单盒解决方案。十个模块插槽&#xff0…

爬虫学习——24.字体反爬

什么是字体反爬 网页开发者自己创造一种字体&#xff0c;因为在字体中每个文字都有其代号&#xff0c;那么以后在网页中不会直接显示这个文字的最终的效果&#xff0c;而是显示他的代号&#xff0c;因此即使获取到了网页中的文本内容&#xff0c;也只是获取到文字的代号&#…

还搞不清楚String、StringBuilder、StringBuffer?

目录 一、String——引用类型&#xff0c;而不是基本数据类型 二、StringBuffer类 三、StringBuilder类 四、String、StringBuffer、StringBuilder比较 五、String、StringBuffer、StringBuilder的选择 一、String——引用类型&#xff0c;而不是基本数据类型 1.…

怎么隐藏搜狗输入法

点击输入法&#xff0c;右键选择更多 点击选项&#xff0c;点击全屏隐藏

《“八股文”之辩:程序员面试与实际工作的纠葛》

在当今的编程世界中&#xff0c;“八股文”成为了一个备受争议的话题。它既是大中小企业面试程序员时的常见问题&#xff0c;又引发了广泛的讨论和思考。那么&#xff0c;“八股文”究竟在实际工作中扮演着怎样的角色呢&#xff1f; “八股文”作为面试的必问内容&#xff0c;…

福建聚鼎:现在装饰画好做吗

在当今社会&#xff0c;随着人们审美情趣的提升和生活品质的改善&#xff0c;家居装饰画已经成为了一种流行的墙面装饰方式。许多人都在思考&#xff0c;现在做装饰画是否是一个好时机? “逆水行舟&#xff0c;不进则退。”在日新月异的市场中&#xff0c;装饰画行业的竞争愈发…

利用 Python 和 IPIDEA:跨境电商与数据采集的完美解决方案

目录 实操案例&#xff1a;利用 IPIDEA 进行数据采集步骤一&#xff1a;注册和获取代理IP步骤二&#xff1a;编写数据采集添加错误处理数据存储到 CSV 文件多线程采集数据 步骤三&#xff1a;处理和分析数据 总结 实操案例&#xff1a;利用 IPIDEA 进行数据采集 我们今天用一个…

TCP/IP 网络模型详解(二)之输入网址到网页显示的过程

当键入网址后&#xff0c;到网页显示&#xff0c;其间主要发生了以下几个步骤&#xff1a; 一、解析URL 下图是URL各个元素所表示的意义&#xff1a; 右边蓝色部分&#xff08;文件的路径名&#xff09;可以省略。当没有该数据时&#xff0c;代表访问根目录下事先设置的默认文…

零基础STM32单片机编程入门(二十四) 内部FLASH详解及读写实战含源码

文章目录 一.概要二.内部FLASH地址空间排布三.内部FLASH主要特色四.内部FLASH读写操作1.FLASH数据读取2.FLASH数据擦除3.FLASH数据写入 五.内部FLASH的各种保护1.写保护2.读保护 六.FLASH读写例程七.CubeMX工程源代码下载八.小结 一.概要 STM32F103C8T6是一款强大而灵活的微控…

Language——基础

前言 开发语言的本质 不同数据类型之间的值传递 正则表达式 (1) 几乎所有语言都支持正则表达式 (2) ^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$ 数据库 (1) 增删改查 一. Python 二.Java 主语言 1. 文件类型 (1) 源代码文件 java——java程序源代码 …

keepalived介绍以及配置主备库自动切换,一条龙服务

Keepalived是什么? Keepalived是一种用于实现高可用性&#xff08;HA&#xff09;的开源软件&#xff0c;它通过虚拟路由冗余协议&#xff08;VRRP&#xff0c;Virtual Router Redundancy Protocol&#xff09;来实现主备切换&#xff0c;从而提高服务的可用性。 虚拟路由冗…