结合angular-file-upload和multer

时间:2017-04-27 21:20:16

标签: javascript angularjs node.js multer angular-file-upload

我非常头疼将角度文件上传插件与multer结合起来使其完全SPA。我坚持通过multer上传多个文件。

这是我的multer选项的样子:( node route.js file)

var upload = multer({
    storage: storage,
    limits: {
        //fileSize: 819200
    }
}).array('myFile');

这是我的POST :( node route.js文件)

router.post('/add/file', function(req, res, next) {
    upload(req,res,function(err) {
        console.log(req.files);
        if(err) {
            console.log("Error uploading file.");
        }
    });
});

这是在我的角度控制器内:

var uploader = $scope.uploader = new FileUploader({
    url: 'http://localhost:3000/add/file',
    alias: 'myFile'
});

uploader.filters.push({
    name: 'imageFilter',
    fn: function(item /*{File|FileLikeObject}*/, options) {
        var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
        return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;
    }
});

它只添加第一个文件和卡住 - 我没有得到任何错误它只是卡住 - 整个页面工作,我可以再次发送文件,但再次只有第一个文件将被上传。控制台显示req.files只有一个文件(第一个)

我在互联网上找不到任何教程或任何带有angular-file-upload插件的东西,这就是我问你们的原因

1 个答案:

答案 0 :(得分:1)

不确定你是否想过这个,但是通过发送多个文件,'uploadAll'函数将不会发送下一个文件,直到它从服务器收到响应。所以路线应该是这样的。我还在文档中看到响应需要json ...但是没有测试这是否是真的

router.post('/add/file', function(req, res, next) {
    upload(req,res,function(err) {
        console.log(req.files);
        if(err) {
            console.log("Error uploading file.");
        } else {
        res.status(200).json({response: 'some response...'})
       }
    });
});