在javascript中读取arraybuffer的内容通过服务器发送(文件读取器api)

问题描述 投票:-1回答:1

当我向服务器发送blob但是当我使用socketio库的emit()将其发送回客户端时,它将转换为ArrayBuffer(2563)

[[Int8Array]]
:
Int8Array(2563) [100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 118, 115, 32, 118, 97, 114, 97, 98, 108, 105, 116, 121, 32, 32, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 13, 10, 13, 10, 13, 10, 115, 99, 97, 108, 101, 32, 111, 102, 32, 115, 99, 97, 116, 116, 101, 114, 32, 112, 108, 111, 116, 13, 10, 108, 105, 110, 110, 101, 114, 32, 112, 97, 116, 116, 101, 114, 32, 111, 102, 32, 108, 105, 110, 101, 32, 105, …]

[[Uint8Array]]
:
Uint8Array(2563) [100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 118, 115, 32, 118, 97, 114, 97, 98, 108, 105, 116, 121, 32, 32, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 100, 101, 118, 105, 97, 116, 105, 111, 110, 13, 10, 13, 10, 13, 10, 115, 99, 97, 108, 101, 32, 111, 102, 32, 115, 99, 97, 116, 116, 101, 114, 32, 112, 108, 111, 116, 13, 10, 108, 105, 110, 110, 101, 114, 32, 112, 97, 116, 116, 101, 114, 32, 111, 102, 32, 108, 105, 110, 101, 32, 105, …]
byteLength
:
(...)

我上传文本文件发送到服务器和控制台这是由服务器返回的文件,所以如何读取文件内容,我已经使用filereader API并将其转换为blob然后服务器已将其作为arraybuffer发送给我。

当文件在文件中时,我能够直接在客户端读取其内容,当我将它发送到服务器的python时,我能够通过打印读取它,但是当它被发送回客户端数据缓冲区时,我不会知道如何查看其内容。

javascript python flask flask-socketio
1个回答
0
投票

您可以创建一个Blob from an ArrayBuffer,然后可以通过FileReader运行该Blob来获取文本

var blob = new Blob([yourArrayBuffer]);
var reader = new FileReader();
reader.onloadend = function(){
  console.log("text: ",reader.result);
};
reader.readAsText(blob);
© www.soinside.com 2019 - 2024. All rights reserved.