Java實現文件上傳保存
本文實例為大傢分享瞭Java實現文件上傳保存的具體代碼,供大傢參考,具體內容如下
框架
Spring Boot + FreeMarker + Ajax
第一次嘗試Spring Boot 和FreeMarker, Spring Boot最大的感受是真的方便,約定大於配置,很多東西都是在使用過程中瞭解,看Spring Boot實戰基本看完就忘得差不多…
後臺
1. 從request獲取到文件
MultipartFile類保存文件信息,文件上傳放在request中,可debug查看request中實體觀察到。
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List<MultipartFile> files = multipartRequest.getFiles("img");
強制轉換request獲取MultipartHttpServletRequest,再獲得MultipartFile文件
2. 寫入上傳文件夾
path在application.properties中定義,使用@Value標簽註入。
/** * 保存圖像 * * @param img * @param userName * @return */ private String writeImgToUpload(MultipartFile img, String userName) { // Tomcat 放在C盤中,可能無讀寫權限而寫入失敗 // 寫入目錄文件 // 獲取文件格式 String suffix = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf(".")); // 目標文件路徑+文件名 String imgFile = path + userName + suffix; File toFile = new File(imgFile); if (!toFile.getParentFile().exists()) { // when file is not existed, will create. toFile.mkdirs(); } // write to target file. try { img.transferTo(toFile); return imgFile; } catch (IOException e) { e.printStackTrace(); } return null; }
前端
<form class="form-horizontal" id="authForm" method="post" enctype="multipart/form-data"> <div class="form-group"> <div class="col-sm-6"> <b><label for="img">上傳認證</label></b> <input type="file" id="img" name="img"> </div> </div> <div class="row"> <div class="col-xs-4"> <button type="submit" class="btn btn-primary btn-block btn-flat">註冊</button> </div> </div> </form>
Ajax通信
submitHandler : function(form) { var file = new FormData(); var img = $('#img')[0].files[0]; file.append('img', img); $.ajax({ url:base_url + "/auth/update", type: "POST", data: file, async: false, cache: false, contentType: false, processData: false, success: function (data) { // 成功的回調 if (data.code == 200) { layer.msg('認證成功'); setTimeout(function () { window.location.href = base_url; }, 500); } else { layer.open({ icon: '2', content: (data.msg || '認證失敗') }); } } });
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Jquery實現異步上傳文件
- 使用AJAX實現上傳文件
- Spring boot實現上傳文件到本地服務器
- JQuery異步post上傳表單數據標準化模板
- Vue+Element+Springboot圖片上傳的實現示例