如何上传ng文件以使用Node

How do I get ng-file-upload to work with Node?

本文关键字:Node 文件 ng      更新时间:2023-09-26

我正在使用带有Node、Express、Multer和ng文件上传的Angular。由于某种原因,我收到了400(错误请求)http请求错误。我尝试了不同的方法,但这一切都回来了。这是代码示例。

HTML

<form  ng-controller="adminController" name="form">

带验证的单个图像选择

提交

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'),并确保从一开始就可以访问您的路由处理程序(并且以前的一些中间件/路由处理程序没有拦截它)。