文件未使用 ngfileupload 存储在本地

files are not storing in local using ngfileupload

我正在尝试使用服务器上的节点 Api 上传文件,我正在使用 ngfileupload angular 模块在前端处理图像。 下面是我的代码:

app.controller('MyCtrl',['Upload','$window',function(Upload,$window){
        var vm = this;
        vm.submit = function(){ 
            if (vm.upload_form.file.$valid && vm.file) { 
                vm.upload(vm.file); 
            }
        }
        vm.upload = function (file) {
            Upload.upload({
                url: '/api/upload', 
                data:{file:file} model
            }).then(function (resp) { 
                if(resp.data.error_code === 0){ //validate success
                    $window.alert('Success ' + resp.config.data.file.name + 'uploaded. Response: ');
                } else {
                    $window.alert('an error occured');
                }
            }, function (resp) { 
                console.log('Error status: ' + resp.status);
                $window.alert('Error status: ' + resp.status);
            }, function (evt) { 
                console.log(evt);
                var progressPercentage = parseInt(100.0 * evt.loaded / evt.total); 
                vm.progress = 'progress: ' + progressPercentage + '% '; 
            });
        };
    }]);

我的节点 api 代码是

apiRoutes.put('/upload', function(req, res){  
  var fstream;
  req.pipe(req.busboy);
  req.busboy.on('file', function(fieldname,file,filename){
    var filePath=path.join(__dirname, './public/file', filename);
    fstream=fs.createWriteStream(filePath);
    file.pipe(fstream);
    fstream.on('close', function(){
      console.log("File Saved...........");
    });
  }); 

});

现在的问题是,当我点击上传按钮时,它显示了一个警告 Error Status:404 和一个错误: Not allowed to load local resource: file:///C:/fakepath/IMG-20160126-WA0013.jpg 我不知道如何解决它... 请帮助我

NgFileUpload默认发送POST请求。您的 api 路由器仅接受 PUT 请求。

尝试将 apiRoutes.put... 更改为 apiRouter.post... 或设置

Upload.upload({
    url: '/api/upload', 
    data: {file:file},
    method: 'PUT'
})