чтение содержимого массива буферов в javascript отправить через сервер (api reader файлов) - PullRequest
0 голосов
/ 15 сентября 2018

Когда я отправляю BLOB на сервер но когда я отправляю его обратно клиенту, используя emit() библиотеки socketio, он преобразуется в 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
:
(...)

У меня есть отправка текстового файла на сервер, и в консоли это был возврат файла сервером, так что, как прочитать содержимое файла, я использовал API для чтения файлов и преобразовал его в BLOB-объект, а затем сервер отправил его мне как массив буферов.

когда файл был в файле, я мог читать его содержимое прямо на стороне клиента когда я отправляю на сервер в python файл blob, я тоже смог прочитать его, печатая, но когда он был отправлен обратно в клиентский массив, я не знаю, как просмотреть его содержимое.

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете создать BLOB-объект из ArrayBuffer , затем вы можете запустить этот BLOB-объект через FileReader, чтобы получить текст

var blob = new Blob([yourArrayBuffer]);
var reader = new FileReader();
reader.onloadend = function(){
  console.log("text: ",reader.result);
};
reader.readAsText(blob);
...