注意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
。