ArrayBuffer转为base64
时间: 2023-07-06 10:09:06 浏览: 159
可以使用以下代码将 ArrayBuffer 转换为 base64 编码:
```javascript
function arrayBufferToBase64(buffer) {
let binary = '';
const bytes = new Uint8Array(buffer);
const len = bytes.byteLength;
for (let i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
```
使用示例:
```javascript
const myArrayBuffer = new ArrayBuffer(8);
const base64String = arrayBufferToBase64(myArrayBuffer);
console.log(base64String);
```
相关问题
js将file文件 ,分别转为 base64 , blob ,和ArrayBuffer
在JavaScript中,你可以使用不同的方法将File对象转换成Base64、Blob或ArrayBuffer。以下是相应的步骤:
1. **转为Base64**:
使用`FileReader` API 的`readAsDataURL`方法可以读取文件并生成一个包含Base64编码的数据URL。
```javascript
async function fileToBase64(file) {
const reader = new FileReader();
await new Promise((resolve, reject) => {
reader.onloadend = function() {
resolve(reader.result);
};
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
```
调用时,传入File对象即可:
```javascript
fileToBase64(file).then(base64Data => console.log('Base64:', base64Data));
```
2. **转为Blob**:
可以直接从File构造一个Blob对象。
```javascript
function fileToFileBlob(file) {
return new Blob([file], {type: file.type});
}
```
3. **转为ArrayBuffer**:
首先读取为Blob,然后创建一个新的ReadableStream,接着读取这个流到ArrayBuffer。
```javascript
async function fileToArrayBuffer(file) {
const blob = fileToFileBlob(file);
const arrayBuffer = await new Response(blob).arrayBuffer();
return arrayBuffer;
}
```
使用同样方式调用:
```javascript
fileToArrayBuffer(file).then(arrayBuffer => console.log('ArrayBuffer:', arrayBuffer));
```
php blob转base64二进制,Arraybuffer,Blob,Base64编码
以下是将 PHP 中的 Blob 数据转换为 Base64 编码的二进制数据、ArrayBuffer 对象和 Blob 对象的示例代码:
1. 将 Blob 转为 Base64 编码的二进制数据:
```php
$blob = "blob data";
$base64_binary = base64_encode($blob);
```
2. 将 Blob 转为 ArrayBuffer 对象:
```php
$blob = "blob data";
$buffer = new SplFixedArray(strlen($blob));
for ($i = 0; $i < strlen($blob); $i++) {
$buffer[$i] = ord($blob[$i]);
}
$arrayBuffer = $buffer->toArray();
```
3. 将 Blob 转为 Blob 对象:
```php
$blob = "blob data";
$blobObject = new \stdClass();
$blobObject->data = $blob;
$blobObject->type = "application/octet-stream";
```
注意:在将 Blob 转为 ArrayBuffer 或 Blob 对象时,需要使用 SplFixedArray 对象来处理二进制数据。然后将 SplFixedArray 对象转为普通数组即可生成 ArrayBuffer 对象。而在将 Blob 转为 Blob 对象时,需要将数据存储在对象的 data 属性中,并指定类型。
阅读全文