SpringBoot 實現文件上傳,圖片上傳並顯示功能

大家好,我是小朔哥,今天為大家分享的是spring boot實現文件上傳。

SpringBoot 實現文件上傳,圖片上傳並顯示功能

我先看一下《頸椎病康復指南》再給大家說怎麼實現的這兩個功能,畢竟只是一個新手,解決這種複雜點的問題(相對而言),還是需要花費大量時間的,這篇文章花了兩天的時間才實現的功能,現在就記錄一下使用springboot怎麼實現文件上傳下載的。

SpringBoot 實現文件上傳,圖片上傳並顯示功能

不僅僅看《頸椎病康復指南》還有圖片這些。

我這裡使用的是 springboot 2.0.3,不需要導入相關jar包,2.x 的版本已經整合進去了,直接使用即可。

spring官網提供了 springboot 的文件上傳下載案例,這是網址:https://spring.io/guides/gs/uploading-files/,使用的是流的輸出,對於我這個新手來說,直接不理解,所以略過,通過網上查閱大量資料,終於把問題解決了。下面的案例是 springboot2.x 圖片上傳與回顯。我使用的工具是idea。

1、創建idea默認的springboot項目,我的版本是2.0.3

2、創建一個控制層FileController

package com.rainy.controller;
import org.apache.catalina.servlet4preview.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;
/**
* 文件上傳
*/
@Controller
public class FileController {
@GetMapping(value = "/file")
public String file() {
return "file";
}
@PostMapping(value = "/fileUpload")
public String fileUpload(@RequestParam(value = "file") MultipartFile file, Model model, HttpServletRequest request) {
if (file.isEmpty()) {

System.out.println("文件為空空");
}
String fileName = file.getOriginalFilename(); // 文件名
String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 後綴名
String filePath = "D://temp-rainy//"; // 上傳後的路徑
fileName = UUID.randomUUID() + suffixName; // 新文件名
File dest = new File(filePath + fileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
String filename = "/temp-rainy/" + fileName;
model.addAttribute("filename", filename);
return "file";
}
}

3、創建MyWebMvcConfigurer,這裡是配置資源映射路徑,詳細點的介紹看這篇文章:https://blog.csdn.net/qq_38762237/article/details/81283241

/**
* 資源映射路徑
*/
@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/temp-rainy/**").addResourceLocations("file:D:/temp-rainy/");
}
}

4、jsp頁面




<title>Title/<title>







注意一點:我是使用jsp引擎來渲染,因為我不會用 Thymeleaf,添加jsp頁面,springboot使用jsp頁面是需要進行配置jsp整合的,默認的是 Thymeleaf 的頁面,簡單的就是HTML頁面

springboot配置jsp頁面的方法:https://blog.csdn.net/qq_38762237/article/details/81283352

大家平時不知道有沒有遇到springboot相關的問題,作者在這裡為大家總結了一個spring boot學習技術路線,包括整個微服務:

SpringBoot 實現文件上傳,圖片上傳並顯示功能

歡迎做Java的工程師朋友們私信我【Java】免費獲取這個思維導圖,還有更多免費的Java架構學習資料,還有BAT大廠架構師技術知識導圖和相關的技術分享視頻,希望可以幫助大家擴展自己的技術廣度和知識面。

領取的朋友們記得一定要幫作者來個轉發+評論!謝謝大家!

轉發+評論後私信【Java】就能免費獲取領取方式了


分享到:


相關文章: