使用nodeJS和angularJS将图像保存在文件夹中

时间:2015-09-23 23:55:32

标签: javascript angularjs node.js

使用nodeJS和angularJS

将图像保存在文件夹中

嗨,我想在一个文件夹中保存图像,我在NodeJS中使用我的backEnd,使用ng-flow在AngularJS中使用我的frondEnd;我的角度服务代码如下

        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
                            }
            });
        }

我在Node

中有以下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打印文件时,我得到像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来传递文件whitout但是在节点中得到一个空对象

1 个答案:

答案 0 :(得分:0)

如果您使用Express.js,body-parser由于其复杂且通常较大的性质而无法处理多部分主体。对于多部分机构,您可能对以下模块感兴趣:

  • busboy
  • multiparty
  • 强大的
  • multer
  • 请参阅suggested modules here以解析多部分正文。