Spring Boot 上傳文件也是使用 MultipartFile 類,和 Spring MVC 其實差不多,參考文章:https://www.cnblogs.com/jwen1994/p/11182923.html
HTML
<form enctype="multipart/form-data" method="post" action="/upload"> 文件:<input type="file" name="head_img"/> 姓名:<input type="text" name="name"/> <input type="submit" value="上傳"/> </form>
Java 文件
package com.example.demo.controller; import java.io.File; import java.io.IOException; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import com.example.demo.domain.JsonData; import com.example.demo.domain.JsonData; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; /** * 功能描述:文件測試 * * <p> 創建時間:Apr 22, 2018 11:22:29 PM </p> * <p> 作者:小D課堂</p> */ @Controller public class FileController { private static final String filePath = "F:/IdeaProjects/springbootDemo/src/main/resources/static/images/"; @RequestMapping(value = "upload") @ResponseBody public JsonData upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request) { //file.isEmpty(); 判斷圖片是否為空 //file.getSize(); 圖片大小進行判斷 String name = request.getParameter("name"); System.out.println("用戶名:"+name); // 獲取文件名 String fileName = file.getOriginalFilename(); System.out.println("上傳的文件名為:" + fileName); // 獲取文件的后綴名,比如圖片的jpeg,png String suffixName = fileName.substring(fileName.lastIndexOf(".")); System.out.println("上傳的后綴名為:" + suffixName); // 文件上傳后的路徑 fileName = UUID.randomUUID() + suffixName; System.out.println("轉換后的名稱:"+fileName); File dest = new File(filePath + fileName); try { file.transferTo(dest); return new JsonData(0, fileName); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return new JsonData(-1, "fail to save ", null); } }
文件大小配置,可以在啟動類里面配置
@Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //單個文件最大 factory.setMaxFileSize("10240KB"); //KB,MB /// 設置總上傳數據總大小 factory.setMaxRequestSize("1024000KB"); return factory.createMultipartConfig(); }