2016-03-22 3 views
0

Ich habe Upload-Funktionalität in angularjs erstellt und wenn ich versuche, die Datei in den Ordner zu speichern, bekomme ich den Fehler 405 method not allowed. Es geschieht lokal auf meinem IIS-Server.405 Methode nicht erlaubt Fehler beim Datei-Upload in angularjs (IIS-Server)

Controller-Datei:

.controller('fileuploadCtrl', ['$scope','$route','$upload', function ($scope,$route,$upload) { 

    $scope.upload = function (files) { 
     if (files && files.length) { 
      for (var i = 0; i < files.length; i++) { 
       var file = files[i]; 
       //var path = 'temp/files/' + $scope.information.id + '-' + file.name; 
       var path = 'temp/files'; 
       $upload.upload({ 
        url: path, 
        file: file, 
        fields: { 
         'username': $scope.username 
        }, 
        headers: { 'Content-Type': 'multipart/form-data' } 
       }).progress(function (evt) { 
        var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 

        $scope.percentComplete = progressPercentage; 
        $scope.items.attachment = evt.config.file.name; 

       }).success(function (data, status, headers, config) { 

       }).error(function (data, status, headers, config) { 

       }); 
      } 
     } 
    }; 

}]); 

HTML-Datei:

<input type="file" ng-file-select name="file" ng-file-change="upload($files)" > 
<div class="progress" style=" margin: 0%"> 
    <div class="progress-bar" role="progressbar" ng-style="{ 'width': percentComplete + '%' }" style="width: 0%;"> 
     <span ng-if="percentComplete === 100">{{items.attachment}} upload completed successfully</span> 
    </div> 
    <span ng-if="percentComplete > 0" class="fileupload">{{percentComplete}}%</span> 
</div> 

Screenshot given below

+0

Haben Sie ein Back-End den Empfang der Datei zu behandeln? Sie müssen etwas haben, das den Empfang handhabt, der mehr als wahrscheinlich eine andere Sprache, wie PHP, Ruby, Perl, C#, usw. enthält. – MiltoxBeyond

+0

Hallo miltox, ich benutze nodeJS, um das backend zu behandeln. –

+0

Welchen Port verwenden Sie für das Backend von NodeJs? Wenn Sie einen anderen Port verwenden, müssen Sie sicherstellen, dass der Upload an den richtigen Server gesendet wird. Momentan senden Sie die Datei an temp/files auf Ihrem Frontend-Server, der entweder nicht existiert oder nicht dafür ausgelegt ist, auf einen tatsächlichen Datei-Upload zu reagieren. – MiltoxBeyond

Antwort

0

Sie benötigen eine lokale IIS Server, um sicherzustellen, können POST-Anfragen:

How do I Configure IIS to accept POST requests?

Der Server könnte auch den MIME-Typ der Datei, die Sie erlauben müssen hochzuladen:

https://technet.microsoft.com/en-us/library/cc725608(v=ws.10).aspx

+0

Hallo @itsphilz, ich versuche, PDF-Dateien hochzuladen. Ich habe .pdf Erweiterung zu den Mime-Typen hinzugefügt, aber es funktioniert immer noch nicht. Ich bin mir nicht sicher, welche Verben in Handlerzuordnungen hinzugefügt werden. Könnten Sie mich bitte im Detail wissen lassen? –

Verwandte Themen