SpringMVC form表單 上傳一個檔案
阿新 • • 發佈:2019-02-18
前臺.jsp檔案
<body>
<!--第一步:引入.js檔案 ajaxSubmit需要jquery.form.js-->
<script type="text/javascript"
src="<%=basePath%>/resources/js/jquery.min.js"></script>
<script type="text/javascript"
src="<%=basePath%>/resources/js/jquery.validate.min.js"></script>
<script type="text/javascript"
src="<%=basePath%>/resources/js/jquery.form.js"></script>
<!--第二步 新增表單區域開始:enctype="multipart/form-data" -->
<form id="createForm" enctype="multipart/form-data">
<ul>
<li><label>標題:</label> <input type ="text" class="input-box"
placeholder="請輸入標題" name="title"></li>
<li><label>內容:</label> <textarea class="textarea-box"
name="content"></textarea></li>
<li><label>上傳附件:</label> <input type="file" class="img-btn"
name="file"></li>
<!-- 點選儲存按鈕提交form -->
<li><input type="submit" class="btn save-btn" value="儲存">
</li>
</ul>
</form>
<!--新增表單區域結束-->
</body>
<script>
$("#createForm").validate({
//做表單驗證
//驗證成功後提交引數
submitHandler : function(form) {
ajaxSubmit();
}
});
function ajaxSubmit() {
/*用ajaxSubmit()方法提交檔案*/
$("#createForm").ajaxSubmit({
type : 'post',
url : "emergencyNotice/create",
error : function() {//請求失敗處理函式
alert("失敗");
},
success : function(data) { //請求成功後處理函式。
alert("成功");
}
});
};
</script>
後臺控制器.java檔案
import java.io.IOException;
import javax.servlet.http.HttpSession;
import org.springframework.web.multipart.MultipartFile;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@ResponseBody
@RequiresPermissions("emergencyNotice:create")
@RequestMapping("/emergencyNotice/create")
public void createEmergencyNotice(EmergencyNotice emergencyNotice, MultipartFile file,
HttpSession session) throws IOException {
/*1處理實體類物件emergencyNotice,省略*/
/*2處理檔案*/
String basePath = session.getServletContext().getRealPath("/"); // 獲取基本路徑
/*如果檔案不為空,儲存檔案*/
if (file != null && !file.isEmpty()) {
String urlPath = HandleFile.saveFile(file, basePath); /*儲存附件到本地*/
} /*end if*/
}
這篇文章把提交檔案和提交一個實體類(基本型別)放在了一起,但是對實體類的處理,省略了。想提醒一下:檔案是可以和實體類(基本型別)一起提交到後臺
這樣提交,無論前臺有沒有提交檔案,都不會出錯的