二进制流转化base64
时间: 2023-09-19 22:11:57 浏览: 1616
二进制流转化为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 ]
阅读全文