2014-09-26 38 views
2

我的父窗口上有一個pop-up也有一個窗體的彈出窗口。該窗體將有一些文件input類型。現在我想用幫助發送輸入類型的數據ajax。 我已經試過這樣:在ajax中發送多部分數據jquery

var formData = new FormData(); 
formData.append("file", $('#profileImg').get(0).files[0]); 

但這不是工作me.Check我htmljQuery

HTML

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 

    </head> 

    <body> 
     <div id="test" style="display:none;box-shadow: 1px 1px 5px; left: 50%; margin: -150px 0 0 -310px; position: absolute; top: 50%; width: 600px; z-index: 2;"> 
      <form name="add_user_form" method="post" enctype="multipart/form-data"> 
       Name: <input type="text" name="uname" id="uname"/><br/> 
       Age: <input type="text" name="age" id="age"/><br/> 
       Profile Image: <input name="profileImg[]" type="file" id="profileImg"/><br /> 
       Display Image: <input name="displayImg[]" type="file" id="displayImg"/><br /> 
       <input type="submit" value="Submit" id="addUser" name="addUser"/> 
       <input type="reset" value="Reset" /> 
      </form> 
     </div> 

     <div id="list"> 
      <input type="button" id="addButton" value="Add"/> 
     </div> 
    </body> 
</html> 

jQuery的

<script> 
      $(document).ready(function() { 
       $("#addButton").live('click',function(){ 
        $("#test").show(); 
       }); 

       $("form[name=add_user_form]").live("submit", function(){ 
        var formData = new FormData(); 
        formData.append("file", $('#profileImg').get(0).files[0]); 

        alert(JSON.stringify(formData)); 
         $.ajax({ 
         url: 'bansal.html', 
         type: 'POST', 
         data: formData, 
         async: false, 
         cache: false, 
         //contentType: false, 
         processData: false, 
         success: function (returndata) { 
          alert(JSON.stringify(returndata)); 
         } 
         }); 
        return false; 
       }); 
      }); 

     </script> 

建議我,我們如何能夠從阿賈克斯

+0

實際問題是什麼?錯誤日誌說什麼,你的服務器端代碼在哪裏? – 2014-09-27 12:12:04

回答

0

發送的所有數據多爲多個文件輸入

var formData = new FormData(); 
var files = $('[name="profileImg[]"]').get(0).files; 
var len = files && files.length; 
var i=0; 
for(;i<len;i++) 
    formData.append("file[]", $('#profileImg').get(0).files[i]); 
+0

當我對此進行提醒時,這也不起作用formdata它顯示爲空白。{}。有什麼問題 – 2014-09-26 13:13:17

+0

您試圖提醒formData變量它不可能在瀏覽器網絡面板上顯示 – 2014-09-26 13:18:31

+0

@ ManProgrammer發佈jsFiddle如果你能我認爲這不會工作 – Developer 2014-09-26 13:22:01

0

您可以使用jQuery給ajaxForm(jquery.form.js)這一點。

 $("#yourformid").ajaxForm() 
    $("#yourformid").ajaxSubmit(function(response){ 
       alert('Success'); 
    }); 

<form enctype="multipart/form-data" action="Youraction URL"> 
     <input type="file" name="profileImg"/> 
</form> 

您可以發送儘可能多的文件。

+0

非常感謝@Rajasekhar。它工作正常。 – 2014-09-27 12:25:40

+0

@AjayBansal如果你發現答案有幫助,那麼你可以接受我的回答:) – Rajasekhar 2014-09-29 10:56:11