base64ToArrayBuffer【Base64转ArrayBuffer】
描述
主要是将Base64转化为ArrayBuffer v3.3.2+
# 1.示例
import { base64ToArrayBuffer } from 'sf-utils2'
const base64 = 'JUU1JThEJTlFJUU5JUI5JThGJUU5JUEzJTlF' // 卞鹏飞
const arrayBuffer = await base64ToArrayBuffer(base64)
console.log(arrayBuffer)
1
2
3
4
2
3
4
输出结果,点击查看
# 2.入参说明
| 参数 | 说明 | 类型 | 是否必填 | 默认值 |
|---|---|---|---|---|
| buffer | arraybuffer 对象 | ArrayBufferLike | 是 | |
| options | 选项 | TBaseBlobArrayBufferTransferOptions ,详情见下 👇 | 否 |
# 2.1.TBaseBlobArrayBufferTransferOptions 说明
| 参数 | 说明 | 类型 | 是否必填 | 默认值 |
|---|---|---|---|---|
| mimeType | MimeType 类型 | string,具体参考下面 | 否 |
`MimeType`类型,点击查看
# 3.源码
import { type TBaseBlobArrayBufferTransferOptions } from '@/_types/_helperTreeBaseType.ts'
/**
* base64 转成ArrayBuffer
* @param base64
* @param options
*/
async function base64ToArrayBuffer(base64: string, options?: TBaseBlobArrayBufferTransferOptions) {
// 1. 分离Base64前缀和数据部分
const [prefix, base64Data] = base64.split(',')
// 2. 自动提取MIME类型(从前缀中解析)
const mimeType = options?.mimeType || prefix.match(/^data:([^;]+);?/)?.[1] || 'application/octet-stream'
// 3. 解码Base64并转换为Uint8Array
const binaryString = atob(base64Data || base64) // 兼容无前缀的Base64
const bytes = new Uint8Array(binaryString.length)
for (let i = 0; i < binaryString.length; i++) {
bytes[i] = binaryString.charCodeAt(i)
}
bytes.buffer['mimeType'] = mimeType
return bytes.buffer
}
export default base64ToArrayBuffer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上次更新: 2025/07/01, 14:52:29

