тип контента октетный поток и обработка его на бэкэнде - PullRequest
0 голосов
/ 01 ноября 2018

Я загружаю изображение PDF через форму на веб-интерфейсе, затем отправляю его на сервер и сохраняю там. Я использую передний объект FormData для хранения изображения. Сохранение его в бэкэнд устанавливает заголовок типа контента на Content-Type: application/octet-stream. Сохранение с помощью nodejs работает следующим образом:

fs.writeFile(this.TMP_FILE, fileBinary, 'binary', (err) => {
  if (err) {
    reject(new TechError('File upload error_stage1'));
  }
  resolve();
})

Это рабочий код, но я не совсем понимаю, почему, потому что, когда вы регистрируете полезную нагрузку в консоли, вы получаете что-то вроде:

------WebKitFormBoundaryzeBEQrZzkzny72uz
Content-Disposition: form-data; name="file"; filename="5b929145ca1f9c2394e4b2e9-1PDF.pdf"
Content-Type: application/pdf

------WebKitFormBoundarysAZurrUo3QA6bEO7
Content-Disposition: form-data; name="file"; filename="1PDF.pdf"
Content-Type: application/pdf

%âãÏÓ1.3
                       O 9/E 3524/N 1/T 7656/H [ 451 137]>>
<</DecodeParms<</Columns 4/Predictor 12>>/Filter/FlateDecode/ID[<4DC91A1875A6D707AEC203BB021C93A0><F6C92B368A8A13408457A1D395A37EB9>]/Index[7 21]/Info 6 0 R/Length 52/Prev 7657/Root 8 0 R/Size 28/Type/XRef/
W[1 2 1]>>stream
hÞbbd``b`²╔

где, как и в случае двоичных данных, я ожидал бы, что это будет массив битов типа [11110101010010110101010101...]. Почему это работает?

1 Ответ

0 голосов
/ 03 ноября 2018

console.log будет интерпретировать двоичные данные (поток 1 и 0) как текст. Pdf - это двоичные файлы, но они содержат много текста, поэтому вы видите там много узнаваемых символов, однако также есть много тарабарщины, так как множество двоичных данных, которые служат различным целям внутри PDF, будут напечатаны как текст console.log

Вы никогда не увидите вывод 11110101010010110101010101... при печати двоичного объекта с console.log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...