使用FormData,進行Ajax請求並上傳文件


注意FormData並不支持IE9以下瀏覽器

第一種,創建一個空的FormData對象,然后使用append()方法向該對象里添加字段

var oMyForm = new FormData();
oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456); 
oMyForm.append("file", $('#file')[0].files[0]);

$.ajax({
    url: '/Manage/UploadImg',
    type: 'POST',
    cache: false,
    data: oMyForm,
    processData: false,
    contentType: false,
    async: false
}).done(function(res) {}).fail(function(res) {});

 

第二種,使用HTML表單來初始化一個FormData對象

HTML部分

<form id= "uploadForm">  
      <p >指定文件名: <input type="text" name="filename" value= ""/></p >  
      <p >上傳文件: <input type="file" name="file"/></ p>  
      <input type="button" value="上傳" onclick="doUpload()" />  
</form>  

JS部分

function doUpload() {  
     var formData = new FormData($( "#uploadForm" )[0]);
     formData.append('num', '1');//可以在已有表單數據的基礎上,繼續添加新的鍵值對
     $.ajax({  
          url: 'http://localhost/file/upload' ,  
          type: 'POST',  
          data: formData,  
          async: false,  
          cache: false,  
          contentType: false,  
          processData: false,  
          success: function (returndata) {  
              alert(returndata);  
          },  
          error: function (returndata) {  
              alert(returndata);  
          }  
     });  
} 

 注:

  • processData設置為false。因為data值是FormData對象,不需要對數據做處理。
  • cache設置為false,上傳文件不需要緩存
  • contentType設置為false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM