Ajax提交帶文件的表單
1. 使用FormData
需要做特殊處理否則,后臺(tái)收不到文件參數(shù)
JQuery版本要是2.0及以上
前端html代碼
<form id="importform" method="post" enctype="multipart/form-data">
<div class="content">
<div class="title_right">
<input type="text" name="名稱" id="name" class="textInput"/>
</div>
<br/>
<div class="add_scroll_div_x" id="center" style="text-align: center; margin: 0 auto; heigth:40px;">
<input type="file" id="doc" name="doc" style="width:100%" accept="application/msexcel"/>
</div>
<div class="add_bottom">
<input type="button" onclick="importExcelData();"/>
<input type="button" id="cancelButton" onclick="window.close();"/>
</div>
</div>
</form>
js提交代碼
var formData = new FormData(document.getElementById("importform"));//表單id
$.ajax({
type: 'post',
processData: false,//這個(gè)必須有,不然會(huì)報(bào)錯(cuò)
contentType: false,//這個(gè)必須有,不然會(huì)報(bào)錯(cuò)
data: formData,
url: '${ctx}/emergencyPlanTask/impExclData.action',
cache: false,
dataType: 'json',
success: function (data) {
}
});
2.使用jquery.form.js插件
html
<form id="uploadForm">
<input type="file" name="image"/>
<input type="text" name="username"/>
<input type="button" value="提交" onclick="upload();"/>
</form>
使用jquery.form.js的js代碼(支持文件上傳)
$("#uploadForm").ajaxSubmit();