如何让 ng-file-upload 与 Node 一起工作?
How do I get ng-file-upload to work with Node?
我将 Angular 与 Node、Express、Multer 和 ng-file-upload 一起使用。出于某种原因,我收到 400(错误请求)http 请求错误。我尝试了不同的东西,但这一切都回来了。这是代码示例。
HTML
<form ng-controller="adminController" name="form">
具有验证的单图像
Select
提交
Angular app.js
$scope.submit = function() {
$log.info($scope.file);
if ( $scope.file) {
$scope.upload($scope.file);
}
};
// upload on file select or drop
$scope.upload = function (file) {
Upload.upload({
url: '/api/admin/photos',
headers : {
'Content-Type': 'multipart/form-data'
},
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);
});
};
节点js
//upload photos
apiRoutes.post('/admin/photos',upload.single(),function(req,res){
console.log(req);
res.json({name: 'this works'});
});
upload.single()
应该改为 upload.single('file')
,因为这是您用于上传的 属性 名称。另外,明确设置:
headers : {
'Content-Type': 'multipart/form-data'
}
不需要。
如果仍然无效,您应该暂时删除 upload.single('file')
并确保开始到达您的路由处理程序(并且一些先前的 middleware/route 处理程序尚未拦截它) .
我将 Angular 与 Node、Express、Multer 和 ng-file-upload 一起使用。出于某种原因,我收到 400(错误请求)http 请求错误。我尝试了不同的东西,但这一切都回来了。这是代码示例。
HTML
<form ng-controller="adminController" name="form">
具有验证的单图像 Select
提交
Angular app.js
$scope.submit = function() {
$log.info($scope.file);
if ( $scope.file) {
$scope.upload($scope.file);
}
};
// upload on file select or drop
$scope.upload = function (file) {
Upload.upload({
url: '/api/admin/photos',
headers : {
'Content-Type': 'multipart/form-data'
},
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);
});
};
节点js
//upload photos
apiRoutes.post('/admin/photos',upload.single(),function(req,res){
console.log(req);
res.json({name: 'this works'});
});
upload.single()
应该改为 upload.single('file')
,因为这是您用于上传的 属性 名称。另外,明确设置:
headers : {
'Content-Type': 'multipart/form-data'
}
不需要。
如果仍然无效,您应该暂时删除 upload.single('file')
并确保开始到达您的路由处理程序(并且一些先前的 middleware/route 处理程序尚未拦截它) .