日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

接收上传的multi-file的文件(四)

發(fā)布時(shí)間:2023/12/6 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接收上传的multi-file的文件(四) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

構(gòu)建工程

為例創(chuàng)建一個(gè)springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依賴。為例能夠上傳文件在服務(wù)器,你需要在web.xml中加入標(biāo)簽做相關(guān)的配置,但在sringboot 工程中,它已經(jīng)為你自動(dòng)做了,所以不需要你做任何的配置。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <dependencies> ??????<dependency> ??????????<groupId>org.springframework.boot</groupId> ??????????<artifactId>spring-boot-starter-web</artifactId> ??????</dependency> ??????<dependency> ??????????<groupId>org.springframework.boot</groupId> ??????????<artifactId>spring-boot-starter-test</artifactId> ??????????<scope>test</scope> ??????</dependency> ??????<dependency> ??????????<groupId>org.springframework.boot</groupId> ??????????<artifactId>spring-boot-starter-thymeleaf</artifactId> ??????</dependency> ??</dependencies>

  

創(chuàng)建文件上傳controller

直接貼代碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 @Controller public?class?FileUploadController { ????private?final?StorageService storageService; ????@Autowired ????public?FileUploadController(StorageService storageService) { ????????this.storageService = storageService; ????} ????@GetMapping("/") ????public?String listUploadedFiles(Model model)?throws?IOException { ????????model.addAttribute("files", storageService ????????????????.loadAll() ????????????????.map(path -> ????????????????????????MvcUriComponentsBuilder ????????????????????????????????.fromMethodName(FileUploadController.class,?"serveFile", path.getFileName().toString()) ????????????????????????????????.build().toString()) ????????????????.collect(Collectors.toList())); ????????return?"uploadForm"; ????} ????@GetMapping("/files/{filename:.+}") ????@ResponseBody ????public?ResponseEntity<Resource> serveFile(@PathVariable?String filename) { ????????Resource file = storageService.loadAsResource(filename); ????????return?ResponseEntity ????????????????.ok() ????????????????.header(HttpHeaders.CONTENT_DISPOSITION,?"attachment; filename=\""+file.getFilename()+"\"") ????????????????.body(file); ????} ????@PostMapping("/") ????public?String handleFileUpload(@RequestParam("file") MultipartFile file, ???????????????????????????????????RedirectAttributes redirectAttributes) { ????????storageService.store(file); ????????redirectAttributes.addFlashAttribute("message", ????????????????"You successfully uploaded "?+ file.getOriginalFilename() +?"!"); ????????return?"redirect:/"; ????} ????@ExceptionHandler(StorageFileNotFoundException.class) ????public?ResponseEntity handleStorageFileNotFound(StorageFileNotFoundException exc) { ????????return?ResponseEntity.notFound().build(); ????} }

  

這個(gè)類通過(guò)@Controller注解,表明自己上一個(gè)Spring mvc的c。每個(gè)方法通過(guò)?
@GetMapping 或者@PostMapping注解表明自己的 http方法。

  • GET / 獲取已經(jīng)上傳的文件列表
  • GET /files/{filename} 下載已經(jīng)存在于服務(wù)器的文件
  • POST / 上傳文件給服務(wù)器

創(chuàng)建一個(gè)簡(jiǎn)單的 html模板

為了展示上傳文件的過(guò)程,我們做一個(gè)界面:?
在src/main/resources/templates/uploadForm.html

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <html xmlns:th="http://www.thymeleaf.org"> <body> ????<div th:if="${message}"> ????????<h2 th:text="${message}"/> ????</div> ????<div> ????????<form method="POST"?enctype="multipart/form-data"?action="/"> ????????????<table> ????????????????<tr><td>File to upload:</td><td><input type="file"?name="file"?/></td></tr> ????????????????<tr><td></td><td><input type="submit"?value="Upload"?/></td></tr> ????????????</table> ????????</form> ????</div> ????<div> ????????<ul> ????????????<li th:each="file : ${files}"> ????????????????<a th:href="${file}"?th:text="${file}"?/> ????????????</li> ????????</ul> ????</div> </body></html>

  

上傳文件大小限制

如果需要限制上傳文件的大小也很簡(jiǎn)單,只需要在springboot 工程的src/main/resources/application.properties 加入以下:

1 2 spring.http.multipart.max-file-size=128KB spring.http.multipart.max-request-size=128KB

  

?

轉(zhuǎn)載于:https://www.cnblogs.com/MaxElephant/p/10231949.html

總結(jié)

以上是生活随笔為你收集整理的接收上传的multi-file的文件(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。