Невозможно кодировать / декодировать base64 файл, используя Node on Windows - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь отправить по HTTP ZIP-файл, чтобы добиться того, чтобы я кодировал / декодировал его в Base64. Это не работает, к сожалению. Я выяснил, что проблема на самом деле заключается в самом кодировании / декодировании и смог изолировать и воспроизвести его.

Рассмотрим простой код, который:

  1. Читает файл из файловой системы .
  2. Base64 кодирует этот файл.
  3. Base64 декодирует ранее вычисленную строку base64 в двоичный поток и сохраняет ее в другом файле (идентичном оригинальному).
const fs = require("fs");

const buffer = fs.readFileSync("C:/users/Public/myzip.zip"); // 1. read
const base64data = buffer.toString("base64");                // 2. encode

fs.writeFileSync("C:/users/Public/myzip2.zip",
                 new Buffer(base64data, "base64"),
                 "base64");                                  // 3. decode + save

Код работает нормально (я на Windows 10), ошибок нет. Он успешно читает и пишет файлы. Однако файл myzip2.zip записан, но его невозможно открыть : Windows жалуется, что он недействителен: (


Немного больше контекста

Причина Этот вопрос заключается в следующем: я использую кодировку Base64 для успешной отправки через ZIP-файл с клиента на сервер.

Этот код изолирует мою проблему, оставляя сетевые сложности вне уравнение. Мне нужно выяснить, как правильно кодировать / декодировать файл с использованием Base64. Как только я смогу заставить его работать на одной машине, он будет работать при отправке файла.

Почему это основа c набор команд не работает?

...