form表單—提交檔案到後臺 並判斷檔案大小和型別
阿新 • • 發佈:2019-01-08
前臺html程式碼
<!--第一步:enctype="multipart/form-data"-->
<form id="addForm" enctype="multipart/form-data">
<div>
<label>縮圖:</label> <input type="file" id="file" name="file"
onchange="getFilesize(this)" />
</div>
<!-- 點選儲存按鈕提交form -->
<input type="submit" value="儲存" />
</form>
input 框的id 要定義為file,才能根據id獲取的input框的值,判斷檔案型別
前臺js程式碼
<script>
$("#addForm").validate({
//省略驗證
submitHandler : function(form) {//驗證成功,就提交表單
/*第2步:用ajaxSubmit方法提交表單*/
$("#addForm" ).ajaxSubmit({
type : 'post',
url : "area/add" , //變數
error : function() {//請求失敗處理函式
alert("失敗");
},
success : function(data) { //請求成功後處理函式。
alert("成功");
}
});
}
})
var fileSize = 0; //檔案大小預設為0
function getFilesize(file) { //如果上傳檔案,會觸發
/*(1)判斷檔案字尾型別*/
var strs = new Array(); //定義一陣列
// var pic1 = $("#file").val(); //獲取input框的值,檔案路徑
var pic1 = $(file).val(); //獲取input框的值,檔案路徑
strs = pic1.split('.'); //分成陣列儲存
var suffix = strs[strs.length - 1]; //獲取檔案字尾
if (suffix != 'jpg' && suffix != 'gif' && suffix != 'jpeg'&& suffix != 'png')
{
alert("您選擇的不是圖片,請上傳一個圖片");//不是圖片,做處理
}
/*(2)獲取檔案大小,以Kb為單位*/
fileSize = file.files[0].size / 1024;
if (fileSize > 10000) {
alert("您選擇的圖片太大,請選擇小於10M的圖片");
}
}
/* 上傳附件的時候,判斷附件大小 */
function getFileSize(file) {
var fileSize = file.files[0].size;
if (fileSize > 104857600) {
alert("檔案大小不能超過100M,請重新選擇檔案"); // 提示訊息
$(file).val(""); // 清空已選擇的檔案
}
}
</script>
後臺
@RequiresPermissions("device:create")
@RequestMapping(value = "area/add", method = RequestMethod.POST)
public String addDeviceWithFile(@RequestParam(required = false, value = "file") MultipartFile file){
//傳了檔案,做什麼處理
}