Javascript 使用ng file Upload和mongo gridfs上传文件
我想上传一个超过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页面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… 选择文件后,将调用控
上传图片:
我认为命名有问题。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);
});
};
}]);