2016-09-27 22 views
5
<form id="uploadForm" enctype="multipart/form-data" action="http://localhost:1337/ad/upload" method="post" name="uploadForm" novalidate> 
    <input type="file" name="userPhoto" id="userPhoto" /> 
    <input type="submit" value="submit" id="uploadImage" /> 
</form> 

Bu, dosya inout olarak bir görüntü kabul eden benim html formudur, kullanıcı bir görüntü dosyası seçebilir ve sonra göndermeyi tıklatabilir. Bu çalışır, ancak geçerli sayfanın URL'si localhost'a dönüşür: 1337/ad/upload. Sayfanın aynı URL'de kalmasını istiyorum.jquery kullanarak çok yapraklı formdata nasıl verilir

$("form#uploadForm").submit(function(event) { 
    event.preventDefault(); 
    var formData = new FormData($(this)[0]); 
    var posting = $.post(url, formData); 

}) 

Jquery kullanarak formu göndermek için bu denedi ama bir hata alıyorum: türü çok parçalı/formdata olduğunda form gönderme hangi verileri Yasadışı İnvokasyon

ve nasıl yapabiliriz: Yakalanmayan Tip hata jQuery

bu verileri almak
+0

bunu kullanın 'var formData = new FormData (this)' –

cevap

14

processData Varsayılan olarak

, varsayılan uydurma bir nesne (teknik olarak bir dize dışında başka bir şey) işlenmiş ve bir sorgu dizesi dönüşecek şekilde veri seçeneği geçirilen veriler, içerik türü "application/x-www-form-urlencoded". Bir DOMDocument veya diğer işlenmemiş veri göndermek istiyorsanız, bu seçeneği false olarak ayarlayın.

böyle jQuery Ajax Documentation

deneyin ajax kontrol edin -

var form = new FormData($("#uploadForm")[0]); 
$.ajax({ 
     url: your_url, 
     method: "POST", 
     dataType: 'json', 
     data: form, 
     processData: false, 
     contentType: false, 
     success: function(result){}, 
     error: function(er){} 
}); 
+0

Çok teşekkür ederim !!! Mükemmel çalışıyor – user3655266

0
Sen formdataiçin işlenmek üzere formData için

var form = $('#uploadForm')[0]; 
// You need to use standart javascript object here 
var formData = new FormData(form); 

veya belirtin kesin veriler tüm şekil verebilir

var formData = new FormData(); 
formData.append('userPhoto', $('input[type=file]')[0].files[0]); 
İlgili konular