国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring boot 圖片上傳與顯示功能實例詳解

spring boot 圖片上傳與顯示功能實例詳解

2020-09-10 13:53ohyeah-44 Java教程

這篇文章主要介紹了spring boot 圖片上傳與顯示功能實例詳解,需要的朋友可以參考下

首先描述一下問題,spring boot 使用的是內嵌的tomcat, 所以不清楚文件上傳到哪里去了, 而且spring boot 把靜態的文件全部在啟動的時候都會加載到classpath的目錄下的,所以上傳的文件不知相對于應用目錄在哪,也不知怎么寫訪問路徑合適,對于新手的自己真的一頭霧水。

后面想起了官方的例子,沒想到一開始被自己找到的官方例子,后面太依賴百度谷歌了,結果發現只有官方的例子能幫上忙,而且幫上大忙,直接上密碼的代碼

?
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package hello;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
public class FileUploadController {
 private static final Logger log = LoggerFactory.getLogger(FileUploadController.class);
 public static final String ROOT = "upload-dir";
 private final ResourceLoader resourceLoader;
 @Autowired
 public FileUploadController(ResourceLoader resourceLoader) {
 this.resourceLoader = resourceLoader;
 }
 @RequestMapping(method = RequestMethod.GET, value = "/")
 public String provideUploadInfo(Model model) throws IOException {
 model.addAttribute("files", Files.walk(Paths.get(ROOT))
  .filter(path -> !path.equals(Paths.get(ROOT)))
  .map(path -> Paths.get(ROOT).relativize(path))
  .map(path -> linkTo(methodOn(FileUploadController.class).getFile(path.toString())).withRel(path.toString()))
  .collect(Collectors.toList()));
 return "uploadForm";
 }
//顯示圖片的方法關鍵 匹配路徑像 localhost:8080/b7c76eb3-5a67-4d41-ae5c-1642af3f8746.png
 @RequestMapping(method = RequestMethod.GET, value = "/{filename:.+}")
 @ResponseBody
 public ResponseEntity<?> getFile(@PathVariable String filename) {
 
 try {
  return ResponseEntity.ok(resourceLoader.getResource("file:" + Paths.get(ROOT, filename).toString()));
 } catch (Exception e) {
  return ResponseEntity.notFound().build();
 }
 }
<strong>//上傳的方法</strong>
 @RequestMapping(method = RequestMethod.POST, value = "/")
 public String handleFileUpload(@RequestParam("file") MultipartFile file,
RedirectAttributes redirectAttributes, HttpServletRequest request) {
 System.out.println(request.getParameter("member"));
 if (!file.isEmpty()) {
  try {
  Files.copy(file.getInputStream(), Paths.get(ROOT, file.getOriginalFilename()));
  redirectAttributes.addFlashAttribute("message",
   "You successfully uploaded " + file.getOriginalFilename() + "!");
  } catch (IOException|RuntimeException e) {
  redirectAttributes.addFlashAttribute("message", "Failued to upload " + file.getOriginalFilename() + " => " + e.getMessage());
  }
 } else {
  redirectAttributes.addFlashAttribute("message", "Failed to upload " + file.getOriginalFilename() + " because it was empty");
 }
 return "redirect:/";
 }
}

看完上面的代碼可以理解到spring boot 的存取文件思路了,存的時候的路徑為

?
1
Paths.get(ROOT, filename).toString()))

這個路徑會在本地的工程根目錄上創建,不應用部署里的目錄,所以一般的訪問http訪問不可能 ,所以它提供了ResourceLoader,利于這個類可以加載非應用目錄的里文件然后返回 

所以就可以讀取文件,所以就要寫getFIle方法來顯示圖片 

spring boot 圖片上傳與顯示功能實例詳解

如果大家對spring boot不是很了解,大家可以參考下面兩篇文章。

Spring Boot 快速入門教程

Spring Boot 快速入門指南

以上所述是小編給大家介紹的spring boot 圖片上傳與顯示功能實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/a625013/article/details/52414470

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚州中文字幕蜜桃视频 | 中文字幕av在线播放 | 91日日夜夜 | 欧美一区二区三区电影 | 亚洲va中文字幕 | 精久久| 一级片黄色免费 | 欧美一区二区在线观看 | 欧洲精品视频在线观看 | 天堂资源网| 99在线精品视频 | 国精产品99永久一区一区 | 成年人视频免费在线看 | 在线观看视频一区 | 四虎新网站 | 九一精品 | 免费一级毛片观看 | 四虎新网站 | 国产情侣一区二区三区 | av网站网址 | 免费成人高清在线视频 | 9色av| 久久久精品网站 | 日韩在线一区二区三区 | 日本电影网址 | 亚洲一区二区在线播放 | 岛国av在线免费观看 | 欧美激情精品久久久久久变态 | 国产一区二区在线免费观看 | 精品国产视频 | 日本天天操 | 欧美高清一区 | 国产精品18久久久久久首页狼 | 久久精品国产一区二区三区 | 成人aⅴ视频 | 亚洲成人免费在线 | 免费毛片一级 | 国产成人免费视频 | 一级在线免费视频 | av影院在线观看 | 国产精彩视频 |