Javascript 使用ng flow获取文件时如何将文件发送到node.js和后端

Javascript 使用ng flow获取文件时如何将文件发送到node.js和后端,javascript,node.js,angularjs,mongodb,Javascript,Node.js,Angularjs,Mongodb,我正在使用angularJS的ng流在我的应用程序中上传img。问题是我成功上传了文件流,但我无法将文件发送到node.js并保存到mongoDb 代码(前端)(HTML): 我在flow.files[0]和$scope.groupData.picURL中有文件对象。 现在我可以向服务器发出POST请求,然后将其保存到mongoDB。 请使用示例代码进行帮助问题在于,您根本没有实际读取文件,只是在检索文件对象。您需要使用FileReader对象来读取数据,以便将其传递给服务器。我设置了一个函数,

我正在使用angularJS的ng流在我的应用程序中上传img。问题是我成功上传了文件流,但我无法将文件发送到node.js并保存到mongoDb

代码(前端)(HTML):

我在flow.files[0]和$scope.groupData.picURL中有文件对象。 现在我可以向服务器发出POST请求,然后将其保存到mongoDB。
请使用示例代码进行帮助

问题在于,您根本没有实际读取文件,只是在检索文件对象。您需要使用
FileReader
对象来读取数据,以便将其传递给服务器。我设置了一个函数,返回
FileReader
对象,该对象将从图像中获取结果数据。您可以从现有的save函数中调用该函数

var getFileReader = function( $scope ) {

    var fileReader = new FileReader();

    fileReader.onloadend = function() {

        $scope.img = fileReader.result;

    }

    return fileReader;
};
然后在函数调用中:

$scope.saveImage = function(flow){

        if(flow){
            var abc = !!{png:1,gif:1,jpg:1,jpeg:1}[flow.files[0].getExtension()]

            if(abc == true){
                var fileReader = getFileReader( $scope ),
                    file = flow.files[0];

                 fileReader.readAsDataURL(file);

                 $scope.$apply();

            }else{
                flow.cancel()
            }
      }

 }

获取此错误类型错误:未能在“FileReader”上执行“readAsDataURL”:参数不是Blob,这意味着
流。文件[0]
对象不是可读的图像文件,这意味着您没有选择正确的文件。有关更多信息,请参阅:您可以设置JSFIDLE吗?我通过传递flow.files[0]。file而不是flow.files[0]。解决了这个问题。太棒了,很高兴我能提供帮助。是否可以作为req.file进入服务器端。如果是的话,哪个对象与http post请求一起传递?
var getFileReader = function( $scope ) {

    var fileReader = new FileReader();

    fileReader.onloadend = function() {

        $scope.img = fileReader.result;

    }

    return fileReader;
};
$scope.saveImage = function(flow){

        if(flow){
            var abc = !!{png:1,gif:1,jpg:1,jpeg:1}[flow.files[0].getExtension()]

            if(abc == true){
                var fileReader = getFileReader( $scope ),
                    file = flow.files[0];

                 fileReader.readAsDataURL(file);

                 $scope.$apply();

            }else{
                flow.cancel()
            }
      }

 }