spring mvc --上傳檔案,檔案和其他資料一起提交
阿新 • • 發佈:2018-11-15
jsp: var formdata = new FormData(); formdata.append('file', $('#file')[0].files[0]); //上傳檔案 formdata.append('id', $('#id').val()); //id formdata.append('temp_id', temp_id); formdata.append('deadline', deadline); $.ajax({ type: "POST", url: 'file/save.do', data: formdata, dataType:'json', processData:false, contentType:false, cache: false, success: function(data){ } }); Controller: @RequestMapping(value="/save") @ResponseBody public Json save(@RequestParam(value="file", required = false) MultipartFile file, @RequestParam(value="id",required = false) String id, @RequestParam(value="temp_id",required = false) String temp_id, @RequestParam(value="deadline",required = false) String deadline) throws Exception{ }
jsp頁面圖片預覽及簡單的格式驗證:
<img id="imgShow" src="" height="100" width="100"> <input type="file" name="pic_url" id="pic_url" value="" onchange="checkImg(this)"/> // js function checkImg(obj){ var ff = $("#pic_url").val(); var type = ff.substring(ff.indexOf(".")).toLowerCase(); //截斷"."之前的,得到字尾 if(ff == null || ff == ""){ bootbox.alert("請選擇檔案"); ("#pic_url").val(""); return; } else if(type!=".png"&&type!=".gif"&&type!=".jpg"&&type!=".jpeg"){ //根據字尾,判斷是否符合圖片格式 bootbox.alert("圖片型別必須是.gif,jpeg,jpg,png中的一種"); ("#pic_url").val(""); return; } //獲取檔案的對像 var thisFile = obj.files[0]; //設定限制影象的大小為10MB,這裡你可以自己設定 var fSize = 1024 * 1024 *10; if (thisFile.size > fSize) { bootbox.alert("圖片太大了!請上傳10M以內的圖片"); ("#pic_url").val(""); return; } var read=new FileReader() // 建立FileReader對像; read.readAsDataURL(obj.files[0]) // 呼叫readAsDataURL方法讀取檔案; read.onload=function(){ $("#imgShow").attr("src", read.result ); } }
excel檔案:
<input type="file" name="file" id="file" onchange="uploadFile(this)"/> function uploadFile(input){ if (input.files && input.files[0]) { var filename = input.files[0].name; var temp = filename.substring(filename.indexOf("."), filename.length).toLowerCase(); if (".xls" != temp && ".xlsx" != temp) { alert('Please select .xls or .xlsx file.'); input.value = ""; return false; } var filesize = input.files[0].size / (1024*1024); if (filesize > 10) { alert('The file size should be within 10M.'); input.value = ""; return false; } } }