Я пытаюсь отправить по HTTP ZIP-файл, чтобы добиться того, чтобы я кодировал / декодировал его в Base64. Это не работает, к сожалению. Я выяснил, что проблема на самом деле заключается в самом кодировании / декодировании и смог изолировать и воспроизвести его.
Рассмотрим простой код, который:
- Читает файл из файловой системы .
- Base64 кодирует этот файл.
- 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 набор команд не работает?