1. 程式人生 > >enctype="multipart/form-data"的form傳參

enctype="multipart/form-data"的form傳參

exc time 文件 信息 傳遞 tel ctype quest earch

1、jsp

<li class="btns"><input id="btnImport" class="btn btn-primary" type="button" value="導入"/></li>
<form id="importForm" action="${ctx}/templet/tEdasTempletInfo/import" method="post" enctype="multipart/form-data"
class="form-search" style="padding-left:20px;text-align:center;" onsubmit="loading(‘正在導入,請稍等...‘);"><br/>
<input id="uploadFile" name="file" type="file" style="width:330px"/><br/><br/>
<input id="mid" name="moduId" type="hidden"/> //你不隱藏,你也看不見input裏面有值。很奇怪。但是controller裏面會看見的。
<input id="btnImportSubmit" class="btn btn-primary" type="submit" <%--onclick="daoru()"--%> value=" 導 入 "/>
<a href="${ctx}/templet/tEdasTempletInfo/import/template">下載模板</a>
</form>

2、js
$("#btnImport").click(function(){
var count = 0;
var checkArry = document.getElementsByName("checks");
for (var i = 0; i < checkArry.length; i++) {
if (checkArry[i].checked == true) {
//選中的操作
$("#mid").val(checkArry[i].value);
count++;
}
}
if (count == 1) {
$.jBox($("#importBox").html(), {title:"導入數據", buttons:{"關閉":true},
bottomText:"導入文件不能超過5M,僅允許導入“xls”或“xlsx”格式文件!"});
}else{
alert("請選擇一條記錄導入模板屬性信息");
}
});

3、controller
public String importFile(String moduId, MultipartFile file, RedirectAttributes redirectAttributes,HttpServletRequest request) throws IOException, InvalidFormatException {
//在頁面的FORM表單上增加enctype="multipart/form-data",就是將頁面裏的值以二進制流的形式進行傳遞,所以在後臺的時候用request.getParameter("XX")取值是肯定取不到的,所以,我們需要做的就是,將request進行轉換
  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("file"); //得到上傳的文件
String moduId = multipartRequest.getParameter("moduId"); // 得到值
  return moduId;
}

//我嘗試了一下 action裏面傳參(以下) 失敗了。controller裏面是獲取得到moduId的值,但是文件file就找不到了
function daoru() {
$("#importForm").attr("action","${ctx}/templet/tEdasTempletInfo/import?moduId="+$("#mid").val());
$("#importForm").submit();
}
ImportExcel ei = new ImportExcel(file, 1, 0); //報錯 :java.lang.RuntimeException: 導入文檔為空!

enctype="multipart/form-data"的form傳參