js二进制流转base64
时间: 2023-07-06 17:30:24 浏览: 174
可以使用JavaScript中的`btoa()`和`Uint8Array`方法将二进制流转换为base64编码。
以下是一个例子:
```javascript
// 假设我们有一个二进制流数组
const bytes = new Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]);
// 使用btoa()方法将二进制流转换为base64编码
const base64 = btoa(String.fromCharCode.apply(null, bytes));
console.log(base64); // "SGVsbG8gd29ybGQ="
```
在上面的例子中,我们使用`Uint8Array`创建了一个二进制流数组,并使用`btoa()`方法将其转换为base64编码。注意,在将二进制流转换为字符串时,我们使用了`String.fromCharCode.apply(null, bytes)`,其中`apply()`方法将`bytes`数组作为参数传递给`String.fromCharCode()`。
相关问题
二进制流转化base64
二进制流转化为Base64可以使用不同的方法,下面是几种常见的方法:
方法一:使用FileReader对象
可以使用FileReader对象的readAsDataURL方法将二进制流转化为Base64编码的字符串。示例代码如下:
```javascript
function convertBinaryToBase64(binary) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => {
resolve(reader.result);
};
reader.onerror = reject;
reader.readAsDataURL(binary);
});
}
// 调用方法
const binaryData = ...; // 二进制流数据
convertBinaryToBase64(binaryData)
.then(base64Data => {
console.log(base64Data);
})
.catch(error => {
console.error(error);
});
```
方法二:使用btoa函数
可以使用btoa函数将二进制流转化为Base64编码的字符串。示例代码如下:
```javascript
function convertBinaryToBase64(binary) {
let binaryString = '';
const bytes = new Uint8Array(binary);
for (let i = 0; i < bytes.length; i++) {
binaryString += String.fromCharCode(bytes\[i\]);
}
return btoa(binaryString);
}
// 调用方法
const binaryData = ...; // 二进制流数据
const base64Data = convertBinaryToBase64(binaryData);
console.log(base64Data);
```
方法三:使用TextDecoder对象
可以使用TextDecoder对象将二进制流转化为字符串,然后再使用btoa函数将字符串转化为Base64编码的字符串。示例代码如下:
```javascript
function convertBinaryToBase64(binary) {
const decoder = new TextDecoder('utf-8');
const text = decoder.decode(binary);
return btoa(text);
}
// 调用方法
const binaryData = ...; // 二进制流数据
const base64Data = convertBinaryToBase64(binaryData);
console.log(base64Data);
```
以上是三种常见的将二进制流转化为Base64的方法,你可以根据自己的需求选择其中一种方法来实现。
#### 引用[.reference_title]
- *1* [前端二进制流转base64 (亲测有效)](https://blog.csdn.net/m0_60067716/article/details/124606097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [js 二进制流转换base64图片](https://blog.csdn.net/qq_36529240/article/details/128610016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [前台接收后台传过来的二进制文件流(二进制转为base64)](https://blog.csdn.net/weixin_43878003/article/details/99285925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
前端怎么把二进制流转换成base64
前端将二进制流转换为Base64编码通常是为了在URL、HTTP头或者存储数据时能够以文本形式传输非文本数据。这通常是通过JavaScript完成的。以下是一个简单的步骤:
1. **获取二进制数据**: 首先,你需要从`Blob`、`File`对象或其他能提供二进制数据的源获取数据。
```javascript
let binaryData = new Blob([yourBinaryData], {type: 'application/octet-stream'});
```
2. **创建`Uint8Array`**: `Blob`可以直接转换为`Uint8Array`,它是操作二进制数据的标准方式。
```javascript
let byteArray = new Uint8Array(binaryData);
```
3. **转换为Base64**: 使用`window.atob`函数将`Uint8Array`转换回原始字符串,然后再次使用`btoa`函数将其编码为Base64。
```javascript
let base64String = btoa(String.fromCharCode(...byteArray));
```
完整示例:
```javascript
function binaryToBase64(binaryData) {
let byteArray = new Uint8Array(binaryData);
return window.btoa(String.fromCharCode(...byteArray));
}
let base64Result = binaryToBase64(binaryData);
```
阅读全文