2017-02-07 3 views
0

ich mehrere Bilder in einem div hochladen müssen, ich versuche, die unterAngularJS: Uncaught Typeerror: Fehler beim Ausführen ‚readAsDataURL‘ auf ‚Filereader‘: Parameter 1 ist nicht vom Typ ‚Blob‘

Winkelcode:

 $scope.stepsModel = []; 
     $scope.imageUpload = function(element){ 
      var reader = new FileReader(); 
      reader.onload = $scope.imageIsLoaded; 
      reader.readAsDataURL(element.files); 
     } 

     $scope.imageIsLoaded = function(e){ 
      $scope.$apply(function() { 
      $scope.stepsModel.push(e.target.result); 
      }); 
     } 

hTML-Code:

<input type="file" ng-model-instant name="myImage" accept="image/*" onchange="angular.element(this).scope().imageUpload(event)"/> 

habe ich diesen Fehler:

Uncaught TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'. 
at b.$scope.imageUpload (new_ads.js:34) 
at HTMLInputElement.onchange (new_ads:202) 

Ich sah hier einige Links, die alle für das Hochladen einzelner Bilder, ich muss mehrere Bilder eins nach dem anderen auf ein Div hochladen.

Kann mir jemand helfen, vielen Dank im Voraus.

+1

try element.files [0] –

+0

nicht verwenden Sie die '' readAsDataURL' verwenden URL.createObjectURL (Element .files [0]) 'stattdessen, und vergessen Sie nicht, die URL zu widerrufen, sobald das Bild geladen oder fehlerhaft ist – Endless

Antwort

1

Ihr Code erfordern 2 ändert

1: Es ist nicht element.files aber element.target als Element hier ist param Entschlossenheit Ereignis

2: .files ist ein Array müssen Sie die erste Datei auswählen von Dateien [0]

$scope.imageUpload = function(element){ 
     var reader = new FileReader(); 
     reader.onload = $scope.imageIsLoaded; 
     //console.log(element.target.files[0]) 
     reader.readAsDataURL(element.target.files[0]); 

    } 

sehen Sie diese Geige http://jsfiddle.net/ADukg/9867/

Verwandte Themen