將資料 URL 轉換為 Blob
使用 FileReader 的 readAsDataURL() 將任意資料轉換為資料 URL 是一項有用的技術。但是,如果您需要將該 Data URL 轉換回 Blob 實例呢?
瀏覽器本機轉換
目前,沒有內建的瀏覽器 API 可以支援直接將資料 URL 轉換為 Blob。但是,有一些利用自訂 JavaScript 程式碼的解決方案。
自訂JavaScript 解決方案
Matt 在Stack Overflow 上提出了一種廣泛接受的方法(如何將dataURL 轉換為JavaScript 中的檔案物件?) 。以下是他的程式碼的更新版本:
<code class="javascript">function dataURItoBlob(dataURI) { const byteString = atob(dataURI.split(',')[1]); const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; const ab = new ArrayBuffer(byteString.length); const ia = new Uint8Array(ab); for (let i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } const blob = new Blob([ab], { type: mimeString }); return blob; }</code>
用法
您現在可以使用dataURItoBlob() 將資料URL 轉換為Blob 物件:
<code class="javascript">const dataURL = 'data:image/png;base64,...'; const blob = dataURItoBlob(dataURL);</code>
以上是如何在 JavaScript 中將資料 URL 轉換為 Blob?的詳細內容。更多資訊請關注PHP中文網其他相關文章!