有天上飛的概念,就要有落地的實現html
- 概念+代碼實現是本文的特色,教程將涵蓋完整的圖文教程,代碼案例
- 文章結尾配套自測面試題,學完技術自我測試更紮實
- 概念十遍不如代碼一遍,朋友,但願你把文中全部的代碼案例都敲一遍
大哥大姐新年好,點贊轉發不要少java
SpringBoot 圖文系列教程技術大綱git
鹿老師的Java筆記
SpringBoot 圖文教程系列文章目錄web
經過前面三篇的教程,小夥伴們已經能夠實現一個web項目了,可是如今項目的功能還有點簡單,接下來的文章中將會逐步完善添加新的功能。面試
本文全部的內容,將會在以前的demo上進行操做。
若是沒有寫好的demo,請去Git倉庫下載:https://gitee.com/bingqilinpeishenme/Lu-JavaNodes/t……apache
<form action="路徑...." method="post" enctype="multipart/form-data">
<input type="file" name="aa">
<input type="submit" value="上傳">
</form>
<!--
1. 表單提交方式必須是post
2. 表單的enctype屬性必須爲multipart/form-data
3. 後臺接受變量名字要與文件選擇name屬性一致
4.action寫Controller的方法的路徑
-->
@Controller
@RequestMapping("/file")
public class FileController {
@RequestMapping("/upload")
public String upload(MultipartFile aa, HttpServletRequest request) throws IOException {
//獲取upload文件夾的路徑
String realPath = request.getRealPath("/upload");
//將上傳的文件寫入 upload文件夾 中
aa.transferTo(new File(realPath,aa.getOriginalFilename()));//文件上傳
return "index";
}
}
#上傳時出現以下異常: 上傳文件的大小超出默認配置 默認10M
nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (38443713) exceeds the configured maximum (10485760)
在application.properties配置文件中tomcat
<a href="../file/download?fileName=corejava.txt">corejava.txt</a>
@RequestMapping("/download")
public void download(String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception {
//獲取upload文件夾的路徑
String realPath = request.getRealPath("/upload");
//經過流讀取文件
FileInputStream is = new FileInputStream(new File(realPath, fileName));
//得到響應流
ServletOutputStream os = response.getOutputStream();
//設置響應頭信息
response.setHeader("content-disposition","attachment;fileName="+ URLEncoder.encode(fileName,"UTF-8"));
//經過響應流將文件輸入流讀取到的文件寫出
IOUtils.copy(is,os);
//關閉流
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(os);
}
恭喜你完成了本章的學習,爲你鼓掌!若是本文對你有幫助,請幫忙點贊,評論,轉發,這對做者很重要,謝謝。app
讓咱們再次回顧本文的學習目標post
- 掌握SpringBoot中文件上傳和文件下載的使用
要掌握SpringBoot更多的用法,請持續關注本系列教程。學習
下面體貼的我給朋友萌還準備了一些 自測面試題和項目案例,但願你可以成熱打鐵,將知識夯紮實。
見面試題集錦 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
見碼雲倉庫 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
本次需求:
練習文中demo