2017-09-05 2 views
0

Ich brauche Bild mit AngularJS ohne Formular hochladen. aber ich weiß nicht, wie ich es in Laravel erhalten soll, sende es. Mein Code ist dies:Bild hochladen Laravel ohne Formular AngularJS

<input type="file" name="file" accept="image/jpeg, image/png" id="file" ng-model="data.image"> 


$('input[type=file]').change(function() { 
    $scope.img = this.files[0]; 
    var filePath = $("#file").val(); 
    var reader = new FileReader(); 
    reader.onload = function (e) { 
     $('#image').attr('src',e.target.result); 
     $scope.img["imgbase64"] = e.target.result; 
    }; 
    reader.readAsDataURL(this.files[0]); 
}); 

ich den Dienst hier verwenden:

 var imgSend = new FormData(); 
     imgSend.append("file",$scope.img); 
     data["image"] = imgSend; 
      url = "maquinas"; registroMaquinaServices.servicesRegistroMaquinaPost(url,data).then(function(promise){ 
        var requests = promise.data.response; 
        console.log(requests); 
       }) 

ich das Laravel bin das Senden.

enter image description here

Dank.

+0

Prüfung Link https://stackoverflow.com/questions/18571001/ Datei-Upload-using-angularjs –

Antwort

0

Sie https://github.com/ghostbar/angular-file-model verwenden können, um Ihre Image-Datei für das Hochladen zu behandeln und dann werden Sie in der Lage seiner Form-Objekt zu erstellen und es zu Ihrem Laravel Server senden zu können, um die Bilddatei als reguläre uploaded-Datei erhalten, nicht eines Base64-codiert. dies ist der Code, den ich so zu tun, verwenden, um im Beispiel alle Daten, die an den Server gesendet werden muss, wird in $scope.data Variable

$http({ 
    headers: { 
     'Content-Type': undefined //undefined value is on purpose 
    }, 
    method: method, 
    url: url, 
    data: $scope.data, 
    transformRequest: function(data, headersGetter) { 

     var formData = new FormData(); 

     angular.forEach(data, function(value, key) { 
      formData.append(key, value); 
     }); 

     return formData; 
    } 
})