這些天忙著刷題,又怕遺忘了spring boot, 所以抽出一點時間折騰折騰,加深點印象。
spring boot 的文件上傳與 spring mvc 的文件上傳基本一致,只需注意一些配置即可。
環(huán)境要求: Spring Boot v1.5.1.RELEASE + jdk1.7 + myeclipse
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鳳凰免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
1).引入thymeleaf,支持頁面跳轉(zhuǎn)
org.springframework.boot spring-boot-starter-thymeleaf
2).在 src/main/resources 目錄下新建 static 目錄和 templates 目錄。 static存放靜態(tài)文件,比如 css、js、image… templates 存放靜態(tài)頁面。先在templates 中新建一個 uploadimg.html
uploadimg.html
3).在 controller 中寫兩個方法,一個方法跳轉(zhuǎn)到上傳文件的頁面,一個方法處理上傳文件
//跳轉(zhuǎn)到上傳文件的頁面 @RequestMapping(value="/gouploadimg", method = RequestMethod.GET) public String goUploadImg() { //跳轉(zhuǎn)到 templates 目錄下的 uploadimg.html return "uploadimg"; } //處理文件上傳 @RequestMapping(value="/testuploadimg", method = RequestMethod.POST) public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file, HttpServletRequest request) { String contentType = file.getContentType(); String fileName = file.getOriginalFilename(); /*System.out.println("fileName-->" + fileName); System.out.println("getContentType-->" + contentType);*/ String filePath = request.getSession().getServletContext().getRealPath("imgupload/"); try { FileUtil.uploadFile(file.getBytes(), filePath, fileName); } catch (Exception e) { // TODO: handle exception } //返回json return "uploadimg success"; }
4).在上面中,我將文件上傳的實現(xiàn)寫在工具類 FileUtil 的 uploadFile 方法中
public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception { File targetFile = new File(filePath); if(!targetFile.exists()){ targetFile.mkdirs(); } FileOutputStream out = new FileOutputStream(filePath+fileName); out.write(file); out.flush(); out.close(); }
5).在瀏覽器輸入 :http://localhost:8080/gouploadimg 測試
上傳文件后:
在應用的 src/main/webapp/imgupload 目錄下
6).如果上傳的文件大于 1M 時,上傳會報錯文件太大的錯誤,在 application.properties 中設置上傳文件的參數(shù)即可
spring.http.multipart.maxFileSize=100Mb spring.http.multipart.maxRequestSize=100Mb
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。