сохранить изображение в папке с помощью nodeJS и angularJS
Привет, я хочу сохранить изображения в папке, у меня есть backEnd в NodeJS и мой frondEnd в AngularJS, используя ng-flow; мой угловой код обслуживания следующий
addImages : function (file) {
var uploadUrl = localPath + "addImages";
var fd = new FormData();
fd.append('file', file);
return $http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: { 'Content-Type': undefined,
'file-name' : undefined,
'file-location' : undefined,
'user-id' : undefined
}
});
}
и у меня есть следующая служба POST в узле
router.post('/addImages', function (req, res) {
console.log(req);
var tempPath = req.files.file.path;
console.log(tempPath);
var targetPath = path.resolve('/../static/image/image.png');
console.log(targetPath);
console.log(req.files.file.name);
if (path.extname(req.files.file.name).toLowerCase() === '.png') {
fs.rename(tempPath, targetPath, function(err) {
if (err) throw err;
console.log("Upload completed!");
});
} else {
fs.unlink(tempPath, function () {
if (err) throw err;
console.error("Only .png files are allowed!");
});
}
// ...
});
ошибка, которую я получаю, это POST/assetImage/addImages 500
кто-то знает более легкую форму, чтобы получить изображение в угловом и сохранить в папке с помощью узла?
редактировать
когда я печатаю файл с помощью console.log, я получаю o файловый объект, например File { name: "howls-moving-castle-40994-1920x1200…", lastModified: 1431122408000, lastModifiedDate: Date 2015-05-08T22:00:08.000Z, size: 910465, type: "image/jpeg" }
но при печати fd получить пустой объект FormData { }
Я намерен передать файл без formData
с помощью formData
но в узле получить пустой объект
Если вы используете Express.js, body-parser
не обрабатывает многочастные тела из-за их сложной и типично большой природы. Для многочастных тел вас могут заинтересовать следующие модули:
См. Предлагаемые модули здесь для разбора многочастных тел.