сохранить изображение в папке, используя nodeJS и angularJS

0

сохранить изображение в папке с помощью 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 но в узле получить пустой объект

  • 0
    Попробуйте выбрать первый файл из массива, fd.append («file», files [0]). И проверьте req в журнале консоли, как вы уже делаете. Это как и ожидалось?
  • 0
    привет @fubbe спасибо за твой ответ, я редактирую вопрос, что результат, объект fd пуст и я не могу передать файл напрямую

1 ответ

0

Если вы используете Express.js, body-parser не обрабатывает многочастные тела из-за их сложной и типично большой природы. Для многочастных тел вас могут заинтересовать следующие модули:

помощник официанта многопартийная грозный multer

См. Предлагаемые модули здесь для разбора многочастных тел.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню