将数据 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中文网其他相关文章!