自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 JavaScript object URLs,可以處理圖像、音頻和視頻

開發(fā) 前端
在這篇文章中,我們來看看如何使用object URL來引用可以使用DOM文件對象引用的數(shù)據(jù)。

許多Web應(yīng)用程序需要在前端處理文件輸入,或者將文件上傳到后端。

在這篇文章中,我們來看看如何使用object URL來引用可以使用DOM文件對象引用的數(shù)據(jù)。

使用object URLs

我們可以調(diào)用 URL.createObjectURL 來從文件對象中創(chuàng)建一個URL字符串對象,方法如下。

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

然后,我們可以在URL字符串對象上調(diào)用 revokeURL 以從內(nèi)存中釋放URL資源:

  1. URL.revokeObjectURL(objectURL); 

使用object URLs 顯示圖片

例如,我們可以使用 createObjectURL 方法在 img 元素中顯示選定的圖像文件,如下所示。

首先,我們編寫以下HTML:

  1. <input type="file"  accept="image/*"> 
  2. <img /> 

然后,我們可以編寫以下代碼來偵聽文件輸入的change事件,然后使用 createObjectURL 設(shè)置 img 元素的 src 屬性,如下所示:

  1. const fileInput = document.querySelector('input'); 
  2. const img = document.querySelector('img'); 
  3. fileInput.onchange = () => { 
  4.   const file = fileInput.files[0]; 
  5.   img.src = URL.createObjectURL(file); 
  6.   img.onload = () => { 
  7.     URL.revokeObjectURL(img.src); 
  8.   } 

在上面的代碼中,我們在選定的文件對象 file 上調(diào)用了 createObjectURL 來創(chuàng)建可以設(shè)置為 src 屬性值的URL。然后,在加載圖像時,我們調(diào)用 revokeObjectURL 清除用于創(chuàng)建URL的資源。

使用object URLs 顯示PDF

我們還可以使用object URL來顯示PDF。我們使用相同的 crateObjectURL 方法,但將其設(shè)置為 iframe 的URL而不是img元素。

例如,我們可以編寫以下HTML:

  1. <input type="file" > 
  2. <iframe> 

然后,我們可以將 src 屬性設(shè)置為PDF對象URL的iframe,如下所示:

  1. const fileInput = document.querySelector('input'); 
  2. const iframe = document.querySelector('iframe'); 
  3. fileInput.onchange = () => { 
  4.   const file = fileInput.files[0]; 
  5.   const objUrl = URL.createObjectURL(file); 
  6.   iframe.setAttribute('src', objUrl); 
  7.   URL.revokeObjectURL(objUrl); 

我們使用 createObjectURL 和上傳的PDF文件來創(chuàng)建Object URL字符串。然后我們可以為其設(shè)置 src 屬性。然后,PDF將顯示在Firefox的iframe中。

將 object URLs 與其他文件類型一起使用

Object URL也可以與其他文件類型一起使用。例如,我們可以選擇一個視頻文件并通過編寫以下代碼來播放它。首先,我們編寫以下HTML代碼:

  1. <input type='file' /> 
  2. <video controls /> 

然后,要播放從文件輸入中選擇的視頻文件,我們編寫:

  1. const fileInput = document.querySelector('input'); 
  2. const video = document.querySelector('video'); 
  3. fileInput.onchange = async () => { 
  4.   const file = fileInput.files[0]; 
  5.   const objUrl = URL.createObjectURL(file); 
  6.   video.src = objUrl
  7.   await video.play(); 
  8.   URL.revokeObjectURL(objUrl); 

在上面的代碼中,我們有一個異步函數(shù),該函數(shù)從選定的視頻文件創(chuàng)建Object URL。然后,將Object URL設(shè)置為video元素的src屬性。

然后,我們調(diào)用視頻 play 以播放視頻。 play 方法返回一個Promise,因此我們必須添加一個 await 等待該P(yáng)romise的解決。

完成此操作后,我們可以在Object URL上調(diào)用 revokeObjectURL 以釋放資源。

總結(jié)

我們可以創(chuàng)建Object URL并將其設(shè)置為各種元素的src屬性,以顯示或播放它們。在大多數(shù)瀏覽器中,它都可以處理圖像,音頻和視頻。

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2022-08-12 08:38:52

FFmpegLinux命令

2010-10-08 10:03:52

JavaScript圖像

2019-09-10 10:44:29

物聯(lián)網(wǎng)工業(yè)物聯(lián)網(wǎng)智慧農(nóng)業(yè)

2023-01-05 16:51:04

機(jī)器學(xué)習(xí)人工智能

2010-02-02 17:18:16

Python圖像處理

2024-05-06 11:12:22

圖像處理數(shù)學(xué)計算NumPy

2023-03-09 15:25:49

2015-08-26 10:27:33

2016-10-31 20:21:05

LinuxOctave音頻文件

2016-10-31 19:41:50

LinuxOctave音頻文件

2023-11-24 09:26:29

Java圖像

2020-06-16 08:39:35

JavaScript圖像處理庫

2020-05-12 11:35:53

JavaScript開源技術(shù)

2020-05-09 11:15:12

JavaScript圖像處理 開源

2016-09-12 14:42:24

LinuxOctave音頻文件

2023-11-23 11:37:13

JavaScript數(shù)組

2023-07-26 08:48:36

AForge庫.NET

2022-07-18 08:48:06

HtmxHTML

2025-02-17 12:00:00

PythonOpenCV提取圖像

2009-06-10 21:51:42

JavaScript XMLFirefox
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號