文件上传不适用于Angular和Node.JS

时间:2015-09-14 18:17:05

标签: javascript angularjs node.js ng-file-upload

我在使用Angular ng-File-Upload模块和Node.js服务器上传文件时遇到问题。在示例中,它表示我应该能够通过“文件”或“文件”属性(req.file或req.files)访问客户端请求中遇到的文件。但是,根据请求,这些属性是“未定义的”我找不到客户端请求中的文件痕迹。

我的客户端代码如下所示:

$scope.addFiles = function(files){
        console.log(files);
        $scope.information.files = files;
            Upload.upload({
                url: 'http://www.uploadURL.com/uploadFiles',
                file: files
            }).progress(function(evt){
                console.log('progress: ' + parseInt(100.0 * evt.loaded / evt.total) + '% file :'+ evt.config.file.name);
            }).success(function(data, status){
                console.log('data '+ data);
                console.log('status '+status);
            }).error(function(data, status){
                console.log('bad data '+ data);
                console.log('bad status '+ data);
            });
        }
    };

用于上传的HTML行如下所示:

<button class="btn btn-primary btn-lg btn-block uploadButton" type="file" ngf-select="addFiles($files)" multiple accept="*"> Select Files</button>

,服务器端目前看起来像这样:

app.post('/uploadFiles', function(req, res){
        var tempfiles = [];
        console.log(req.file);
        console.log(req.files);
});

上述两个控制台日志都返回“undefined”。如果有人知道如何解决此问题/更好的文件上传方法,我将非常感激。

1 个答案:

答案 0 :(得分:2)

发布数据位于请求正文中,您需要正文解析器中间件来解析发布数据并将其设置为请求中的字段。检查this