application.properties配置文件添加:java
# 上傳文件總的最大值 spring.servlet.multipart.max-request-size=10MB # 單個文件的最大值 spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-file-size
限制單個文件的最大值spring.servlet.multipart.max-request-size
限制上傳的多個文件的總大小一、建立Controller控制類web
package com.desire.controller; import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @RestController @RequestMapping("/upload") public class Upload { private static final Logger LOGGER = Logger.getLogger(Upload.class); @RequestMapping("uploadFile") public String uploadFile(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "上傳失敗,請選擇文件"; } String fileName = file.getOriginalFilename(); System.err.println("文件名稱:" + fileName); String filePath = "D:/upload/"; System.err.println("文件保存路徑:" + filePath); File dest = new File(filePath + fileName); try { file.transferTo(dest); LOGGER.info("上傳成功!!!"); return "上傳成功!"; } catch (IOException e) { LOGGER.error(e.toString(), e); } return "上傳失敗!!!"; } }
二、若是要寫jsp頁面驗證的話,選擇文件,form的enctype
爲multipart/form-data
。spring
我這裏直接用Postman進行驗證。apache
1.打開Postmanapp
2.填寫url,選擇POST提交方式。jsp
3.①選擇Bodyurl
②選擇form-datacode
③添加KEY值:fileorm
④選擇Fileblog
⑤添加VALUE
四、點擊Send運行
五、輸出返回值。查看上傳文件。上傳成功!
在Controller中添加如下方法
@RequestMapping("uploadFiles") public String uploadFiles(HttpServletRequest request) { List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file"); System.out.println("選擇了文件數::" + files.size()); String filePath = "D:/upload/"; System.err.println("文件保存路徑:" + filePath); for (int i = 0; i < files.size(); i++) { MultipartFile file = files.get(i); if (file.isEmpty()) { return "上傳第" + (i++) + "個文件失敗!!!"; } String fileName = file.getOriginalFilename(); System.err.println("文件名稱:" + fileName); File dest = new File(filePath + fileName); try { file.transferTo(dest); LOGGER.info("第" + (i + 1) + "個文件上傳成功!"); } catch (IOException e) { LOGGER.error(e.toString(), e); return "上傳第" + (i++) + "個文件失敗!!!"; } } return "上傳成功!!!"; }
選擇不一樣的文件。(注:總大小不要超過你設定的限制值)
查看上傳結果