2010-02-20 38 views
7

jquery form plugin ile ilgili bir sorunum var. Bir dosyayı senkronize olmayan bir şekilde yüklemeye çalışıyorum ancak formu göndermiyor.Jquery form eklentisi dosya yükleme

<form id="fileUploadForm" method="post" action="Default.aspx" enctype="multipart/form-data"> 
<input type="text" name="filename" /> 
<input type="file" id="postedFile" name="postedFile" /> 
<input type="button" value="Submit" onclick="UploadFile();" /> 
</form> 

$(document).ready(function() { 

     $('#fileUploadForm').ajaxForm();    
    }); 

function UploadFile() { 

     var options = 
     {     
      url:"Default.aspx",     
      beforeSend: ShowRequest, 
      success: SubmitSuccesfull, 
      error:AjaxError        
     };    
     $("#fileUploadForm").ajaxSubmit(options); 
     return false; 
    }. 

aşağıdaki I başka bir test o sadece bir metin kutusu olan oluştururlar var gibi html biçimlendirme ve javascript kodu vardır ve iyi çalışıyor. Ayrıca giriş tipi = "dosya" yorum yaptığımda ... yukarıdaki form da iyi çalışıyor. Girdi tipi dosyada sorun nedir? Herhangi Bir Fikrin? Kısacası

cevap

8

:

<input type="file" /> 

ajax ibraz edilemez, tam bir geri gönderme olmalıdır. Geleneksel olarak AJAX stili davranışı istiyorsanız, bunun için bir iFrame kullanın. Kullandığınız platformu bilmeden, birkaç çözüm kullandım, SWFUpload genellikle iyi bir seçenek.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script type="text/javascript" src="Javascript/jquery-1.3.2.js"></script> 
    <script type="text/javascript" src="Javascript/jquery.form.js"></script> 
    <script type="text/javascript"> 
     $(function() {    
      $('#fileUploadForm').ajaxForm({     
      beforeSubmit: ShowRequest, 
      success: SubmitSuccesful, 
      error: AjaxError        
      });          
     });    

     function ShowRequest(formData, jqForm, options) { 
      var queryString = $.param(formData); 
      alert('BeforeSend method: \n\nAbout to submit: \n\n' + queryString); 
      return true; 
     } 

     function AjaxError() { 
      alert("An AJAX error occured."); 
     } 

     function SubmitSuccesful(responseText, statusText) {   
      alert("SuccesMethod:\n\n" + responseText); 
     }  
    </script> 
</head> 
<body> 
    <form id="fileUploadForm" method="POST" action="Default.aspx" enctype="multipart/form-data"> 
     <input type="text" name="filename" /> 
     <input type="file" id="postedFile" name="postedFile" /> 
     <input type="submit" value="Submit" /> 
    </form> 
</body> 
</html> 
+2

Teşekkür Eğer http://jquery.malsup.com/form/#file-upload am aşağıdaki bağlantıyı kontrol edebilir Yanıtınız için: Burada

bir düzeltmenin tam belge örneği Yanlış anladım mı? – mehmet6parmak

+0

@ mehmet6parmak - Yukarıdaki seçenek eklendi, bir çekim yap, hala sorunların var mı diye bakın. Herhangi bir eylem/hata olup olmadığını görmek için FireBug veya bir şey mi kullanıyorsunuz? –

+0

Firebug kullanmadım ama görsel stüdyomda hata ayıklamak ancak jquery içinde neler olduğunu anlayamadım (gerçekten yukarıda anladığınız tek bir şey iframe yaratır = anladım)) jquery'nin hata işleyicisini kullanmaya çalıştım. ama bu yöntem hiçbir zaman idam edilmedi. Sorunu bulursam yazacağım, ilginiz için tekrar teşekkürler. – mehmet6parmak

İlgili konular