2016-12-24 19 views
1

サーバー上でノードApiを使用してファイルをアップロードしようとしています。フロントエンドでイメージを処理するngfileupload angularモジュールを使用しています。以下 は私のコードです: Not allowed to load local resource: file:///C:/fakepath/IMG-20160126-WA0013.jpg 私はいけない:ファイルがngfileuploadを使用してローカルに保存されていません

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コードは、今の問題は、私はそのアラートError Status:404とエラーを示す、アップロードボタンを押したときに、ということ

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..........."); 
    }); 
    }); 

}); 

をですそれを修正する方法を知っている... 助けてください

答えて

1

NgFileUploadPOSTリクエストをデフォルトで送信します。あなたのAPIルータはPUTリクエストのみを受け入れます。

apiRouter.post...apiRoutes.put...を変更したり、

Upload.upload({ 
    url: '/api/upload', 
    data: {file:file}, 
    method: 'PUT' 
}) 
を設定するようにしてください
関連する問題