Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ng file Upload和mongo gridfs上传文件_Javascript_Angularjs_Node.js_Mongodb_Gridfs Stream - Fatal编程技术网

Javascript 使用ng file Upload和mongo gridfs上传文件

Javascript 使用ng file Upload和mongo gridfs上传文件,javascript,angularjs,node.js,mongodb,gridfs-stream,Javascript,Angularjs,Node.js,Mongodb,Gridfs Stream,我想上传一个超过16MB的文件到我的数据库Mongo。 在前端部分,我使用了ng文件上传模块()。在后端,我使用connect-busboy和gridfs流模块 我得到以下错误: POST/api/files/500 3.084 ms-1992 错误:不支持的内容类型:application/json;字符集=utf-8 在Busboy.parseHeaders(C:…\node\u modules\Busboy\lib\main.js:68:9) 在new Busboy… 选择文件后,将调用控

我想上传一个超过16MB的文件到我的数据库Mongo。 在前端部分,我使用了ng文件上传模块()。在后端,我使用connect-busboy和gridfs流模块

我得到以下错误: POST/api/files/500 3.084 ms-1992 错误:不支持的内容类型:application/json;字符集=utf-8 在Busboy.parseHeaders(C:…\node\u modules\Busboy\lib\main.js:68:9) 在new Busboy…

选择文件后,将调用控制器的函数$scope.uploadFile($file),该函数使用post方法调用后端服务器api。问题似乎在api调用部分

我有两个问题: -我做错了什么?还有更好的方法吗

下面是我的代码的样子:

前端

html页面

上传图片:

我认为命名有问题。Ng文件上传使用服务名称更新,您也使用工厂名称更新,这是一个问题-您使用工厂发送文件,这是一个错误

您应该使用上传机制从Ng文件上传,所以删除您的上传工厂

您的代码看起来是一样的,因为您使用了良好的命名,只添加了url参数;)


在html部分中,您指定了“ngf max size=“1MB”,并且您正在上载16MB的文件True,但我对所有上载的文件重复使用了相同的功能,因此在第一种非常具体的情况下,文件可能低于16MB,但我想为所有上载的文件提供一种上载机制。如何修改提供的用于将excel数据转储到mongodb的代码
var appControllers = angular.module('appControllers', ['ngFileUpload']);

appControllers.controller('appUploadController',['$scope','$location','Upload', function($scope, $location, Upload){
  $scope.uploadFile = function($file) {
   Upload.upload({
            url: 'api/files',
            data: {file: $file}
        })
      .then(function (resp) {
        console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
    }, function (resp) {
      console.log('Error status: ' + resp.status);
    }, function (evt) {
      var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
      console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
    });
   };
}]);