2016-05-19 22 views
10

mam obraz Dodaj ajax jak tenKombajny przesyłania obrazu z formularza ajax ajax przedłożyć

$scope.uploadFile = function(){ 
    var file = $scope.myFile; 
    console.log(file); 
    var uploadUrl = "/api/upload_image";//It will also goes to '/api/get_data' 
    //fileUpload.uploadFileToUrl(file, uploadUrl); 
    var fd = new FormData(); 
    fd.append('file', file); 
    $http.post(uploadUrl, fd, { 
     transformRequest: angular.identity, 
     headers: {'Content-Type': undefined} 
    }) 
    .success(function(e){ 
     console.log("Success"); 
    }) 
    .error(function(e){ 
     console.log("Error"); 
    }); 
}; 

i nazywając złożyć formularz ajax tak.

$http({ 
    url: "/api/get_data", 
    method: "POST", 
    dataType:"json", 
    data:JSON.stringify(this.formData) 
}).success(function(data) { 
    console.log("Success");  
}).error(function(error) { 
    console.log("Error"); 
}); 

Oba działają, ale osobno, Jak połączyć te dwa ajax w jeden, który jest złożony ajax, drugi.

Czy jest jakiś sposób, aby umieścić dane obrazu w drugim ajax używam kątowej + laravel5.2

mój wkład w pliku kątowym widzenia jest

<input type="file" file-model="myFile"> 

Dzięki.

+0

Istnieją dwa różne adresy URL. Zatem połączenie jednego z drugim może nie być ideałem. Zamiast tego możesz użyć obietnicy obietnicy i obietnicy – brk

+0

@ user2181397 Przepraszam za inny adres URL, potrzebowałem go jako jedynego adresu URL '/ api/get_data' –

+0

jaki format przesyłasz obraz jako? co próbujesz zbudować? narzędzie do przesyłania zdjęć do Twojej witryny? – Pixelomo

Odpowiedz

6

Możesz łączyć te dwa pola w ten sposób, aby opublikować obraz i formularz, Spróbuj z tym.

var file = $scope.myFile; 
var fd = new FormData(); 
fd.append('file', file); 
fd.append('formData', JSON.stringify(this.formData)); 


$http({ 
    url: "/api/get_data", 
    method: "POST", 
    dataType:"json", 
    transformRequest: angular.identity, 
    headers: {'Content-Type': undefined}, 
    data:fd 
}).success(function(data) { 

Aby pobrać formData trzeba dekodowania JSON po stronie serwera skryptów.

+0

To zadziałało dla mnie, dzięki. To tylko sposób? –