亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

使用Spring Boot上傳文件功能

2024-07-13 10:16:29
字體:
來源:轉載
供稿:網友

上傳文件是互聯網中常常應用的場景之一,最典型的情況就是上傳頭像等,今天就帶著帶著大家做一個Spring Boot上傳文件的小案例。

1、pom包配置

我們使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version></parent><properties> <java.version>1.8</java.version></properties><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency></dependencies>

引入了 spring-boot-starter-thymeleaf 做頁面模板引擎,寫一些簡單的上傳示例。

2、啟動類設置

@SpringBootApplicationpublic class FileUploadWebApplication { public static void main(String[] args) throws Exception { SpringApplication.run(FileUploadWebApplication.class, args); } //Tomcat large file upload connection reset @Bean public TomcatEmbeddedServletContainerFactory tomcatEmbedded() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {  if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {  //-1 means unlimited  ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);  } }); return tomcat; }}

tomcatEmbedded這段代碼是為了解決,上傳文件大于10M出現連接重置的問題。此異常內容GlobalException也捕獲不到。

spring,boot,上傳,文件

詳細內容參考: Tomcat large file upload connection reset

3、編寫前端頁面

上傳頁面

<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><body><h1>Spring Boot file upload example</h1><form method="POST" action="/upload" enctype="multipart/form-data"> <input type="file" name="file" /><br/><br/> <input type="submit" value="Submit" /></form></body></html>

非常簡單的一個Post請求,一個選擇框選擇文件,一個提交按鈕,效果如下:

spring,boot,上傳,文件

上傳結果展示頁面:

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><body><h1>Spring Boot - Upload Status</h1><div th:if="${message}"> <h2 th:text="${message}"/></div></body></html>

效果圖如下:

spring,boot,上傳,文件

4、編寫上傳控制類

訪問localhost自動跳轉到上傳頁面:

@GetMapping("/")public String index() { return "upload";}

上傳業務處理

@PostMapping("/upload") public String singleFileUpload(@RequestParam("file") MultipartFile file,    RedirectAttributes redirectAttributes) { if (file.isEmpty()) { redirectAttributes.addFlashAttribute("message", "Please select a file to upload"); return "redirect:uploadStatus"; } try { // Get the file and save it somewhere byte[] bytes = file.getBytes(); Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename()); Files.write(path, bytes); redirectAttributes.addFlashAttribute("message",  "You successfully uploaded '" + file.getOriginalFilename() + "'"); } catch (IOException e) { e.printStackTrace(); } return "redirect:/uploadStatus";}

上面代碼的意思就是,通過 MultipartFile 讀取文件信息,如果文件為空跳轉到結果頁并給出提示;如果不為空讀取文件流并寫入到指定目錄,最后將結果展示到頁面。

MultipartFile 是Spring上傳文件的封裝類,包含了文件的二進制流和文件屬性等信息,在配置文件中也可對相關屬性進行配置,基本的配置信息如下:

spring.http.multipart.enabled=true #默認支持文件上傳.spring.http.multipart.file-size-threshold=0 #支持文件寫入磁盤.spring.http.multipart.location= # 上傳文件的臨時目錄spring.http.multipart.max-file-size=1Mb # 最大支持文件大小spring.http.multipart.max-request-size=10Mb # 最大支持請求大小

最常用的是最后兩個配置內容,限制文件上傳大小,上傳時超過大小會拋出異常:

spring,boot,上傳,文件

更多配置信息參考這里: Common application properties

5、異常處理

@ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(MultipartException.class) public String handleError1(MultipartException e, RedirectAttributes redirectAttributes) { redirectAttributes.addFlashAttribute("message", e.getCause().getMessage()); return "redirect:/uploadStatus"; }}

 

設置一個 @ControllerAdvice 用來監控 Multipart 上傳的文件大小是否受限,當出現此異常時在前端頁面給出提示。利用 @ControllerAdvice 可以做很多東西,比如全局的統一異常處理等,感興趣的同學可以下來了解。

6、總結

這樣一個使用Spring Boot上傳文件的簡單Demo就完成了,感興趣的同學可以將示例代碼下載下來試試吧。

參考:

示例代碼-github

示例代碼-碼云

總結

以上所述是小編給大家介紹的使用Spring Boot上傳文件功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性xxxx极品高清hd直播| 欧美午夜激情在线| 亚洲网站在线播放| 69久久夜色精品国产69乱青草| 亚洲激情在线观看| 原创国产精品91| 在线性视频日韩欧美| 欧洲中文字幕国产精品| 亚洲精品资源在线| 欧美最猛性xxxxx亚洲精品| 欧美大片在线看| 午夜精品国产精品大乳美女| 亚洲国产精品小视频| 欧美在线国产精品| 日韩欧美大尺度| 成人精品视频99在线观看免费| 91免费观看网站| 久久久久久久久电影| 插插插亚洲综合网| 最新91在线视频| 日韩欧美精品中文字幕| 精品magnet| 伊人亚洲福利一区二区三区| 久久高清视频免费| 亚洲xxxx3d| 亚洲乱码一区二区| 成人久久久久久久| 97超碰国产精品女人人人爽| 国产亚洲精品美女久久久久| 日韩中文字幕在线视频播放| 亚洲jizzjizz日本少妇| 亚洲精品美女在线观看播放| 在线观看国产精品淫| 亚洲精品99久久久久| 亚洲国产又黄又爽女人高潮的| 精品美女久久久久久免费| 国产精品免费一区豆花| 国内精品模特av私拍在线观看| 亚洲精品美女免费| 91国自产精品中文字幕亚洲| 日韩av一区二区在线观看| 亚洲97在线观看| 久久精品这里热有精品| 国产精品青草久久久久福利99| 欧美日韩美女视频| 欧洲永久精品大片ww免费漫画| 精品日本美女福利在线观看| 一区二区在线视频| xxxxx成人.com| 久久精品亚洲热| 在线观看欧美日韩国产| 国产97在线视频| 91国产精品电影| 久久69精品久久久久久久电影好| 久久97久久97精品免视看| 国产精品福利小视频| 热re91久久精品国99热蜜臀| 日韩中文字幕在线| 成人国产精品日本在线| 中文.日本.精品| 中文精品99久久国产香蕉| 日韩av在线导航| 精品久久久久久亚洲国产300| 最新69国产成人精品视频免费| 久久久精品国产一区二区| 久久夜色精品国产亚洲aⅴ| 精品久久久999| 欧美激情综合色综合啪啪五月| 亚洲精品视频久久| 亚洲精品日韩久久久| 久久国产精品久久久久久久久久| 成人在线播放av| 欧美性猛交xxxx乱大交蜜桃| 欧美成年人视频网站欧美| 欧美日本国产在线| 欧美成人合集magnet| 欧美黑人性猛交| 一区二区三区亚洲| 国产精品99蜜臀久久不卡二区| 久久亚洲欧美日韩精品专区| 在线精品91av| 欧美日韩精品在线视频| 久久精品电影网站| 欧美亚洲在线观看| 欧美巨猛xxxx猛交黑人97人| 日韩精品一二三四区| 欧美超级乱淫片喷水| 欧美性videos高清精品| 精品福利在线观看| 夜夜嗨av一区二区三区免费区| 久久福利视频导航| 欧美成人第一页| 国产精品99久久久久久www| 欧美日韩国产丝袜美女| 亚洲影视九九影院在线观看| 91久久久久久国产精品| 亚洲剧情一区二区| 国产欧美日韩中文字幕| 亚洲国产成人精品久久久国产成人一区| 午夜精品久久久久久久99热浪潮| 久久人人爽人人| 成人做爰www免费看视频网站| 国产精品午夜一区二区欲梦| 久久影视电视剧免费网站清宫辞电视| 国产性猛交xxxx免费看久久| 亚洲天堂男人天堂| 国产成人av在线| 最近更新的2019中文字幕| 久久精品免费播放| 日韩中文字幕在线看| 91av在线影院| 国产成人免费av电影| 欧美黄色小视频| 精品一区二区电影| 亚洲美女av在线| 欧美野外wwwxxx| 国产精品久久久久久久久免费看| 亚洲精品视频免费在线观看| 国产精品无av码在线观看| 亚洲精品国产suv| 亚洲天堂网在线观看| 欧美精品一区二区免费| 亚洲精品久久视频| 高潮白浆女日韩av免费看| 欧美性猛交xxxxx水多| 欧美精品18videos性欧| 中文日韩在线观看| 日韩欧美在线视频观看| 亚洲欧美精品一区| 欧美激情在线观看| 久久久久久久影视| 在线播放国产一区中文字幕剧情欧美| 欧美高清性猛交| 一区二区三区 在线观看视| 91成人国产在线观看| 国内免费久久久久久久久久久| 日韩电影中文 亚洲精品乱码| 午夜免费久久久久| 欧美另类在线播放| 国产精品日韩电影| 日韩黄色av网站| 中文字幕精品在线| 亚洲人线精品午夜| 日韩精品久久久久久福利| 欧美另类暴力丝袜| 国产99久久久欧美黑人| 动漫精品一区二区| 日韩免费观看av| 亚洲男女自偷自拍图片另类| 亚洲丁香婷深爱综合| 国产91色在线免费| 色综合久久悠悠| 日韩成人中文字幕在线观看| 欧美性xxxx极品hd欧美风情| 国自产精品手机在线观看视频| 国产主播欧美精品| 中文精品99久久国产香蕉| 狠狠躁夜夜躁人人躁婷婷91| www国产亚洲精品久久网站| 欧美大尺度在线观看| 久99久在线视频| 欧美国产视频日韩| 欧美成人免费全部观看天天性色| 国产精品视频久|