Загрузите файл с помощью NodeJS и node -formidable

Мне удалось загрузить файл с помощью node.js и грозного модуля, файл, который был сохранен на диске, в каком-то плохом формате (плохая кодировка) например если я загружу изображение, я не могу его просмотреть, если я загружу txt файл gedit, поставьте следующее сообщение: "gedit не смог обнаружить кодировку символов. Убедитесь, что вы не пытаетесь открыть двоичный файл. Выберите кодировку символов из меню и повторите попытку. "

вот код:

form.encoding = 'utf-8';
form.parse(req, function(err, fields, files) {
    fs.writeFile('test.js', files.upload,'utf8', function (err) {
          if (err) throw err;
          console.log('It\ saved!');
    });
});

Ответ 1

Проблема заключается в том, что files.upload не является содержимым файла, это экземпляр класса File из node -formidable.

Посмотрите:

https://github.com/felixge/node-formidable/blob/master/lib/file.js

Вместо того, чтобы снова писать файл на диск, вы можете просто получить доступ к пути к загруженному файлу, как это, и использовать fs.rename(), чтобы переместить его туда, где вы хотите:

fs.rename(files.upload.path, 'yournewfilename', function (err) { throw err; });