Я занимаюсь разработкой веб-сайта с angular.js
и node.js
, в этом есть необходимость в функции загрузки, и мне удалось отправить объектный файл из внешнего интерфейса, т.е. используется метод POST, но когда сервер получает файл, объектный файл сохраняется как строковый файл. Как получить объектный файл в виде объектного файла на стороне сервера (в узле) или как снова преобразовать строковый файл в объектный файл?
Я попытался отправить файл в виде данных и изображения в заголовке и теле запроса, но это не удалось. Полученный объектный файл имеет строковый формат
Контроллер:
var formdata = new FormData();
vm.getTheFiles = function ($files) {
alert($files[0]);
vm.uploadme= $files[0];
formdata.append('image', $files[0])
angular.forEach($files, function (value, key) {
formdata.append(key, value);
console.log('fileeeeeeeeeeeeeeee' + key + ' ' + value);
});
for (var pair of formdata.entries()) {
console.log(pair[1]);
}
};
vm.uploadFiles = function () {
console.log(vm.uploadme);
var request = {
method: 'POST',
url: '/api/users/upload/',
data: formdata,
headers: {
'Content-Type': undefined,
data: formdata
}
};
// SEND THE FILES.
$http(request)
.success(function (d) {
alert(d);
})
.error(function () {
});
}
HTML:
<input type="file" fileread="vm.uploadme" ng-files="vm.getTheFiles($files)" />
<input type="button" ng-click="vm.uploadFiles()" value="Upload" />
Узел:
function upload(req, res) {
console.log('data',req.headers.data);
var formdata = req.headers.data;
var fs = require("fs");
var filePathFinal1 = '/images/profile/' + formdata + '.png';
fs.createWriteStream('app' + filePathFinal1);
res.sendStatus(200);
}
В приведенном выше коде узла я получаю отображение в виде строки, но я хочу, чтобы объектный файл был как есть.