1. 程式人生 > >form表單—提交檔案到後臺 並判斷檔案大小和型別

form表單—提交檔案到後臺 並判斷檔案大小和型別

前臺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){
         //傳了檔案,做什麼處理
    }