iframe可以加载pdf文件流吗_使用 JavaScript object URLs,可以处理图像、音频和视频...

本文介绍了如何使用JavaScript的object URLs来处理前端文件输入,展示包括图片和PDF在内的不同文件类型。通过URL.createObjectURL创建URL字符串,并在文件加载后使用revokeObjectURL释放资源。示例代码展示了在img、iframe中使用object URLs显示图像和PDF文件,以及播放视频文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

650c758d4561f44d79b5c26f36cdcdef.png

许多Web应用程序需要在前端处理文件输入,或者将文件上传到后端。

在这篇文章中,我们来看看如何使用object URL来引用可以使用DOM文件对象引用的数据。

使用object URLs

我们可以调用 URL.createObjectURL 来从文件对象中创建一个URL字符串对象,方法如下。

const objectURL = window.URL.createObjectURL(fileObj);

然后,我们可以在URL字符串对象上调用 revokeURL 以从内存中释放URL资源:

URL.revokeObjectURL(objectURL);

使用object URLs 显示图片

例如,我们可以使用 createObjectURL 方法在 img 元素中显示选定的图像文件,如下所示。

首先,我们编写以下HTML:

然后,我们可以编写以下代码来侦听文件输入的change事件,然后使用 createObjectURL 设置 img 元素的 src 属性,如下所示:

const fileInput = document.querySelector('input');const img = document.querySelector('img');fileInput.onchange = () => {  const file = fileInput.files[0];  img.src = URL.createObjectURL(file);  img.onload = () => {    URL.revokeObjectURL(img.src);  }}

在上面的代码中,我们在选定的文件对象 file 上调用了 createObjectURL 来创建可以设置为 src 属性值的URL。然后,在加载图像时,我们调用 revokeObjectURL 清除用于创建URL的资源。

使用object URLs 显示PDF

我们还可以使用object URL来显示PDF。我们使用相同的 crateObjectURL 方法,但将其设置为 iframe 的URL而不是img元素。

例如,我们可以编写以下HTML:

然后,我们可以将 src 属性设置为PDF对象URL的iframe,如下所示:

const fileInput = document.querySelector('input');const iframe = document.querySelector('iframe');fileInput.onchange = () => {  const file = fileInput.files[0];  const objUrl = URL.createObjectURL(file);  iframe.setAttribute('src', objUrl);  URL.revokeObjectURL(objUrl);}

我们使用 createObjectURL 和上传的PDF文件来创建Object URL字符串。然后我们可以为其设置 src 属性。然后,PDF将显示在Firefox的iframe中。

将 object URLs 与其他文件类型一起使用

Object URL也可以与其他文件类型一起使用。例如,我们可以选择一个视频文件并通过编写以下代码来播放它。首先,我们编写以下HTML代码:

然后,要播放从文件输入中选择的视频文件,我们编写:

const fileInput = document.querySelector('input');const video = document.querySelector('video');fileInput.onchange = async () => {  const file = fileInput.files[0];  const objUrl = URL.createObjectURL(file);  video.src = objUrl;  await video.play();  URL.revokeObjectURL(objUrl);}

在上面的代码中,我们有一个异步函数,该函数从选定的视频文件创建Object URL。然后,将Object URL设置为video元素的src属性。

然后,我们调用视频 play 以播放视频。 play 方法返回一个Promise,因此我们必须添加一个 await 等待该Promise的解决。

完成此操作后,我们可以在Object URL上调用 revokeObjectURL 以释放资源。

总结

我们可以创建Object URL并将其设置为各种元素的src属性,以显示或播放它们。在大多数浏览器中,它都可以处理图像,音频和视频。


如果对你有所启发和帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者的最大鼓励。

私信回复大礼包送某网精品视频课程网盘资料,准能为你节省不少钱!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值