js实现base64转Blob
时间: 2023-02-08 20:53:18 浏览: 292
在 JavaScript 中,可以使用 `atob()` 函数将 base64 编码的字符串转换为二进制数据,然后使用 `Blob()` 构造函数将其转换为 Blob 对象。
```javascript
// base64 转 Blob
function base64ToBlob(base64) {
let binary = atob(base64);
let array = [];
for (let i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], { type: "image/png" });
}
```
使用的时候直接调用函数,就能得到一个 Blob 对象了。
```javascript
let base64 = "iVBORw0KGg....";
let blob = base64ToBlob(base64);
```
需要注意,这个例子中使用了 "image/png" 作为 Blob 对象的类型,如果是其他类型的图片需要改成相应的类型。
相关问题
vue实现base64转Blob
在Vue中,可以使用JavaScript中的File API和Blob对象来实现base64转Blob。
具体步骤如下:
1. 将base64字符串解码为Uint8Array类型的二进制数据
```
const bytes = window.atob(base64.split(',')[1])
const array = new Uint8Array(bytes.length)
for (let i = 0; i < bytes.length; i++) {
array[i] = bytes.charCodeAt(i)
}
```
2. 使用new Blob()函数创建Blob对象
```
const blob = new Blob([array], { type: 'application/octet-stream' })
```
3. 你也可以使用npm库blob-util 这个库也可以实现base64转blob
```
import { base64StringToBlob } from 'blob-util'
const blob = base64StringToBlob(base64, 'application/octet-stream')
```
完整的示例代码如下:
```
export default {
methods: {
async handleClick() {
const base64 = 'data:application/octet-stream;base64,YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4'
const blob = await this.base64ToBlob(base64)
// 使用blob对象
},
base64ToBlob(base64) {
const bytes = window.atob(base64.split(',')[1])
const array = new Uint8Array(bytes.length)
for (let i = 0; i < bytes.length; i++) {
array[i] = bytes.charCodeAt(i)
}
return new Blob([array], { type: 'application/octet-stream' })
}
}
}
```
请注意,如果要在IE浏览器中使用Blob对象,需要使用polyfill库。
js base64转blob
以下是将 base64 字符串转换为 Blob 对象的 JavaScript 代码示例:
```javascript
function base64toBlob(base64, type = 'application/octet-stream') {
const bstr = atob(base64);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type });
}
// 示例用法
const base64Str = '...'; // 待转换的 base64 字符串
const blob = base64toBlob(base64Str, 'image/png');
console.log(blob); // 输出 Blob 对象
```
阅读全文