有天上飛的概念,就要有落地的實現
- 概念+代碼實現是本文的特點,教程將涵蓋完整的圖文教程,代碼案例
- 文章結尾配套自測面試題,學完技術自我測試更扎實
- 概念十遍不如代碼一遍,朋友,希望你把文中所有的代碼案例都敲一遍
大哥大姐新年好,點贊轉發不要少
SpringBoot 圖文系列教程技術大綱
鹿老師的Java筆記
SpringBoot 圖文教程系列文章目錄
- SpringBoot圖文教程1「概念+案例 思維導圖」「基礎篇上」
- SpringBoot圖文教程2—日志的使用「logback」「log4j」
- SpringBoot圖文教程3—「‘初戀’情結」集成Jsp
前言
通過前面三篇的教程,小伙伴們已經可以實現一個web項目了,但是現在項目的功能還有點簡單,接下來的文章中將會逐步完善添加新的功能。
本文所有的內容,將會在之前的demo上進行操作。
如果沒有寫好的demo,請去Git倉庫下載:https://gitee.com/bingqilinpeishenme/Lu-JavaNodes/t……
文件上傳
1.准備上傳頁面
<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的方法的路徑
-->
2.編寫控制器
@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";
}
}
3.修改文件上傳大小
#上傳時出現如下異常: 上傳文件的大小超出默認配置 默認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配置文件中
文件下載
1.提供下載文件鏈接
<a href="../file/download?fileName=corejava.txt">corejava.txt</a>
2.開發控制器
@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);
}
總結
恭喜你完成了本章的學習,為你鼓掌!如果本文對你有幫助,請幫忙點贊,評論,轉發,這對作者很重要,謝謝。
讓我們再次回顧本文的學習目標
- 掌握SpringBoot中文件上傳和文件下載的使用
要掌握SpringBoot更多的用法,請持續關注本系列教程。
下面體貼的我給朋友萌還准備了一些 自測面試題和項目案例,希望你能夠成熱打鐵,將知識夯扎實。
上期自測面試題答案
見面試題集錦 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
自測面試題(答案見下期)
- SpringMvc 文件上傳的步驟
- SpringMvc 文件下載的步驟
上期自測實現項目小案例答案
見碼雲倉庫 https://gitee.com/bingqilinpeishenme/Lu-JavaNodes
自測實現項目小案例(答案見下期)
本次需求:
練習文中demo