单击文件上载按钮时POST http:// localhost:8082 / public / fileUpload 404(Not Found)

时间:2017-03-17 11:25:09

标签: angularjs node.js mean-stack

您好我想将图片上传到我的本地路径。

我正在使用angularjs我试图将图像上传到我的本地路径,但我无法将图像存储在本地路径中。

当我点击上传按钮时,我正在

POST http://localhost:8082/public/fileUpload 404 (Not Found)

但我在我的本地文件夹中添加了fileUpload文件夹。

这里显示找不到fileUpload。

下面我添加了我的代码,任何人都可以查看我的代码。

<html>

   <head>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
   </head>

   <body ng-app = "myApp">

    <div ng-controller = "myCtrl">
    <input type="file" file-model="myFile"/>
    <button ng-click="uploadFile()">upload me</button>
</div>

      <script>  
      var myApp = angular.module('myApp', []);

myApp.directive('fileModel', ['$parse', function ($parse) {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            var model = $parse(attrs.fileModel);
            var modelSetter = model.assign;

            element.bind('change', function(){
                scope.$apply(function(){
                    modelSetter(scope, element[0].files[0]);
                });
            });
        }
    };
}]);

myApp.service('fileUpload', ['$http', function ($http) {
    this.uploadFileToUrl = function(file, uploadUrl){
        var fd = new FormData();
        fd.append('file', file);
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {'Content-Type': undefined}
        })
        .success(function(){
        })
        .error(function(){
        });
    }
}]);

myApp.controller('myCtrl', ['$scope', 'fileUpload', function($scope, fileUpload){

    $scope.uploadFile = function(){
        var file = $scope.myFile;
        console.log('file is ' );
        console.dir(file);
        var uploadUrl = "/public/fileUpload";
        fileUpload.uploadFileToUrl(file, uploadUrl);
    };

}]);

      </script>

   </body>
</html>

1 个答案:

答案 0 :(得分:0)

在本地主机上侦听端口8082的应用程序中,没有POST /public/fileUpload的路由处理程序。

可能是你有一个其他方法(如GET)的路由处理程序,当你在浏览器中输入URL时它可能会给你一个响应但为了工作你需要有一个POST处理程序。

查看您的后端代码并搜索/public/fileUpload路由处理程序。确保正确处理POST。

使用curl -v -X POST http://localhost:8082/public/fileUpload确保您获得为POST处理的路由。