2015-09-03 5 views
17

benim laravel ajax uygulamasında bir sorun var yükleyin.laravel 5 Ajax Dosya/Görüntü</p> <p>Ben ajax POST aracılığıyla görüntüleri/dosya yükleyebilir olamaz,

Burada benim kodum var.

Ajax ..

/*Add new catagory Event*/ 
$(".addbtn").click(function(){ 
$.ajax({ 
     url:'add-catagory', 
     data:{ 
     logo:new FormData($("#upload_form")[0]), 
     }, 
     dataType:'json', 
     async:false, 
     type:'post', 
     processData: false, 
     contentType: false, 
     success:function(response){ 
     console.log(response); 
     }, 
    }); 
}); 
/*Add new catagory Event*/ 

Bıçak şablonu ...

<form enctype="multipart/form-data" id="upload_form" role="form" method="POST" action="" > 
     <div class="form-group"> 
     <label for="catagry_name">Name</label> 
     <input type="hidden" name="_token" value="{{ csrf_token()}}"> 
     <input type="text" class="form-control" id="catagry_name" placeholder="Name"> 
     <p class="invalid">Enter Catagory Name.</p> 
     </div> 
     <div class="form-group"> 
     <label for="catagry_name">Logo</label> 
     <input type="file" class="form-control" id="catagry_logo"> 
     <p class="invalid">Enter Catagory Logo.</p> 
    </div> 

    </form> 
    </div> 
    <div class="modelFootr"> 
     <button type="button" class="addbtn">Add</button> 
     <button type="button" class="cnclbtn">Reset</button> 
    </div> 
    </div> 

Kontrolör ..

public function catadd(){ 
    if (Input::hasFile('logo')) 
    { 
     return "file present"; 
    } 
    else{ 
     return "file not present"; 
    } 
} 

Rota ..

Route::post('add-catagory',['as'=>'catagory_add','uses'=>'Mast[email protected]']); 

Kodumdaki hata nedir ???

ben laravel denetleyicisi dosya bilgilerini ..

Nasıl bu sorunu çözebilir alınamıyor ...?

echo dd(Input::all()); 

Kontrol dosyaları php nesne: sizi sonrası ne olsun controller içerisinde

+0

buradaki herhangi bir fikir için http://stackoverflow.com/questions/38893450/sending-pdf-file-to-server-using-ajax –

cevap

20

İki şey değiştirmek için:

adresinin js dosyasını değiştirin :

data:{ 
    logo:new FormData($("#upload_form")[0]), 
}, 

için:

data:new FormData($("#upload_form")[0]), 

Eğer bütün formu göndermek istiyorum çünkü. HTML'nize olarak

:

için dosya giriş alanında

<input type="file" class="form-control" id="catagry_logo"> 

bir isim ekleyin: Bana nedeniyle dataType:'json' için çalışmaz

<input type="file" name="logo" class="form-control" id="catagry_logo"> 
+3

Woooooooooooooow .. Teşekkürler dostum ... Mükemmel çalışıyor. –

+1

diyor ki TypeError: Yasadışı çağrı –

+0

Diyelim ki cevabı Google'da bulabilirsiniz, iyi adam, yardımsever;) – Iamzozo

1

kontrol edin. Bu, PHP'de: Hiçbir veri göndermiyorsunuz değil mi? Form gerçekten gönderiyor mu?

+0

gösterdiği bla bla betikleri dostudur. –

+0

php'deki dosyalar nesnesi nedir? – marko

+0

Hiçbir şekilde marko .. formdata ile ilgili herhangi bir sorun var mı? –

1

. Birisi hata alırsa, sadece dataType:'json''u kaldırın.