91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中Base64 、Blob與File相互轉換的方法是什么

發布時間:2023-03-16 15:36:30 來源:億速云 閱讀:147 作者:iii 欄目:編程語言

這篇文章主要介紹“PHP中Base64 、Blob與File相互轉換的方法是什么”,在日常操作中,相信很多人在PHP中Base64 、Blob與File相互轉換的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP中Base64 、Blob與File相互轉換的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、格式的基本介紹

  • Base64

Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數據的方法  Base64文檔入口

舉個例子

PHP中Base64 、Blob與File相互轉換的方法是什么

  • Blob

Blob 對象表示一個不可變、原始數據的類文件對象。它的數據可以按文本或二進制的格式進行讀取,也可以轉換成 ReadableStream來用于數據操作。 Blob文檔入口

舉個例子

PHP中Base64 、Blob與File相互轉換的方法是什么

  • File

文件(File)接口提供有關文件的信息,并允許網頁中的 JavaScript 訪問其內容。 File文檔入口
舉個例子

PHP中Base64 、Blob與File相互轉換的方法是什么

就不過多介紹了,主要來講如果轉換。

二、如何判斷這三種格式

1.判斷是否為Base64字符串

// 判斷是否為base64格式字符串
function isBase64(str) {
   //正則表達式判斷
   var reg = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i;
   return reg.test(str) //返回 true or false
}

2.判斷是否為Blob對象

console.log(data instanceof Blob)   //ture  or  false

3.判斷是否為File對象

console.log(data instanceof File && !data instanceof Blob)   //ture  or  false

PS:
Blob和File都用instanceof來判斷是否為對應類型數據
有一點需要注意,File對象也是Blob對象 ,因為File繼承于Blob,所以其中的判斷邏輯可以自己定義

三、格式之間的轉換

1.Base64轉換為File

function dataURLtoFile(dataurl, filename) {
   var arr = dataurl.split(','),
       mime = arr[0].match(/:(.*?);/)[1],
       bstr = atob(arr[1]),
       n = bstr.length,
       u8arr = new Uint8Array(n);
   while (n--) {
       u8arr[n] = bstr.charCodeAt(n);
   }
   return new File([u8arr], filename, { type: mime });
}
  • 需要傳兩個參數,第一個是數據,第二個是自定義文件名字符串

2.Base64轉換為Blob

function dataURLtoBlob(dataurl, filename) {
   var arr = dataurl.split(','),
       mime = arr[0].match(/:(.*?);/)[1],
       bstr = atob(arr[1]),
       n = bstr.length,
       u8arr = new Uint8Array(n);
   while (n--) {
       u8arr[n] = bstr.charCodeAt(n);
   }
   return new Blob([u8arr], { type: mime });
}
  • 和轉File基本一樣,就最后一句return不一樣

3.Blob轉File

function blobToFile(blob) {
   return new File([blob], 'screenshot.png', { type: 'image/jpeg' })
}
  • 這里和Base64轉File其實用的都是new File()這個方法,上面的第二個參數是傳進來的,這里是定死的,這個參數不是很重要,可以自行修改函數,方法都已經提供了,直接使用就可以。

到此,關于“PHP中Base64 、Blob與File相互轉換的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐闻县| 礼泉县| 北辰区| 安龙县| 玛纳斯县| 县级市| 南投市| 那曲县| 共和县| 西平县| 铜鼓县| 商都县| 策勒县| 明溪县| 秦皇岛市| 嘉鱼县| 囊谦县| 金山区| 大冶市| 许昌市| 沙河市| 迁安市| 镶黄旗| 高清| 新营市| 久治县| 班玛县| 莎车县| 龙里县| 荆州市| 明光市| 扶沟县| 衡水市| 天门市| 延庆县| 孝感市| 林甸县| 西贡区| 西峡县| 呼玛县| 驻马店市|