2017-01-20 4 views
0

HTMLAngularJs HTTP POST косяк достигают локальной папке

<input type="file" file-model="image" multiple/> 
<button type="submit" class="btn-sm" ng-click="uploadFile()">Upload</button> 

В HTML, у меня есть вклад, как это.

JS

app.directive('fileModel', ['$parse', function ($parse) { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attributes) { 
      var model = $parse(attributes.fileModel); 
      var modelSetter = model.assign; 
      element.bind('change', function(){ 
       scope.$apply(function(){ 
        modelSetter(scope, element[0].files[0]); 
       }); 
      }); 
     } 
    };}]); 
app.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} 
    }); 
};}]); 
app.controller('storeController',['$http','$scope','fileUpload',function($http,$scope,fileUpload) { 

    $scope.uploadFile = function(){ 
     var file = $scope.image; 


     console.log('file is '); 
     console.dir(file); 

     var uploadUrl = "././img/"; 
     fileUpload.uploadFileToUrl(file, uploadUrl); 
    }; 

Я пытаюсь загрузить изображение с помощью этого кода на сервере/локальную папку. Но он отвечает с ошибкой HTTP 404 на консоли.

Правильно регистрирует файл на консоли, но когда я пытаюсь отправить его в папку, не работаю.

В папке с корнем называется img. Url является правильным, нет никакой ошибки синтаксиса о написании URL, но он реагирует с

POST http://localhost:63342/Project/img/ 404 (Not Found) 

ошибки в консоли.

Что я могу сделать, чтобы заставить его работать?

+0

Вам необходимо создать конечную точку на вашем сервере, которая обрабатывает запрос на загрузку файла, который скопирует его в папку назначения, он не копирует файл автоматически (спасибо богу) –

+0

Как я могу это сделать? Я не профессионал. Предполагалось, что файл будет сохранен в папку с кодом http.post. –

+0

Нет, подумайте об этом - сколько времени потребуется, чтобы ваш сервер был загружен множеством вирусов, если это возможно? Вы должны реализовать его с использованием любого языка на стороне сервера (Python/PHP/Node.js ....) –

ответ

1

Вы не можете получить доступ к своей структуре папок с помощью JavaScript, и вы не можете получить к нему доступ с URL-адресом, конечно, из соображений безопасности.

В противном случае любой пользователь мог бы написать немного JavaScript и делать все, что захочет, с вашими файлами.

Плюс URL-адрес виртуального пути не является физическим. Вы можете сохранить файл в физическом местоположении, но вы не можете сделать то же самое с виртуальным.

Вы не сказали, как ваше приложение структурировано, если у вас есть задний конец, например MVC, вы можете сделать это с этой стороны. Просто создайте конечную точку, которую вы нажмете на JavaScript, и пусть код задней части справится с загруженными данными.

+0

Путь существует с моим физическим путем в консольном журнале, как вы видели. Это HTML-проект, работающий с AngularJS. Я хочу загрузить изображение в свою папку (ProjectRoot/img /) и после того, как я возьму путь к изображению и сохраню его в своих json-данных. Я смотрел много видео, читал множество решений о загрузке файла с помощью angularjs. Я сделал то же самое во всех своих испытаниях, но каждое решение ответило на эту ошибку. структура Проект -img -js --angularjs и другие сценарии --app.js -index.html –

+0

У меня возникли проблемы только с проводкой файл folder.I может взять файл от входа и довести его до консоли. –

Смежные вопросы