SpringBoot簡單實(shí)現(xiàn)文件上傳
前言:
這里給大家介紹如何在SpringBoot項(xiàng)目中實(shí)現(xiàn)文件上傳功能!
1.創(chuàng)建SpringBoot項(xiàng)目
打開IDEA,點(diǎn)擊文件,選擇新建項(xiàng)目,點(diǎn)擊Spring Initializr,然后根據(jù)自己的需求設(shè)置項(xiàng)目名稱,位置以及JDK。這里需要注意,服務(wù)器的URL最好設(shè)置為阿里云服務(wù)器,這樣可以使得項(xiàng)目加載地更快。

點(diǎn)擊下一步后,勾選Spring Web依賴與Thymeleaf模板引擎后點(diǎn)擊完成即可。

2.修改application.properties配置文件
因?yàn)镾pringBoot項(xiàng)目中默認(rèn)文件的最大上傳大小為1MB,而1MB的上傳容量無法滿足我們開發(fā)工程中的文件上傳需求,因此我們需要修改配置文件。
# 設(shè)置上傳文件的大小為10MB spring.servlet.multipart.max-file-size=10MB
3.編寫控制器UserController類
這里需要注意的是,使用MultipartFile類來處理接受前端上傳的文件,通過它可以獲取文件的名稱,類型,大小等等信息。
package com.xing.springbootfileupload.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Controller
public class UserController {
@RequestMapping("/")
public String welcome(){
return "index";
}//這里相當(dāng)于設(shè)置歡迎頁
@RequestMapping("/upload")
@ResponseBody
public String upload(String name, MultipartFile phone) throws IOException {//實(shí)現(xiàn)文件上傳
System.out.println("上傳的用戶名為:"+name);
System.out.println("圖像的原始名稱為:"+phone.getOriginalFilename());
System.out.println("上傳文件的類型為:"+phone.getContentType());
saveFile(phone);
return "文件上傳成功";
}
public void saveFile(MultipartFile phone) throws IOException {//將文件保存到本地
String dir="這里寫自己要保存圖片的絕對路徑";//建議這里寫resources目錄的絕對路徑
File path=new File(dir+"/upload/");
if(!path.exists()){//如果當(dāng)前目錄不存在
path.mkdir();
}
File file=new File(dir+"/upload/"+phone.getOriginalFilename());
phone.transferTo(file);//將此圖像保存到file本地
}
}4.編寫前端頁面index.html
編寫表單的時候要注意,我們一定要寫enctype=“multipart/form-data” 來控制文件的編碼,否則文件會上傳失??!
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>歡迎頁</title>
</head>
<body>
<h1>請自行上傳用戶名與圖像</h1>
<hr>
<form enctype="multipart/form-data" method="post" th:action="@{/upload}">
<p>用戶名:<input type="text" name="name"></p>
<p>用戶名:<input type="file" name="phone"></p>
<input type="submit" value="上傳">
</form>
</body>
</html>5.效果展示
直接運(yùn)行SpringBoot啟動類,運(yùn)行結(jié)果如下所示:

選擇合適的用戶名與圖片文件后,點(diǎn)擊上傳即可看見瀏覽器顯示上傳成功!

并且可以在后臺看見上傳文件的相關(guān)信息。

到此這篇關(guān)于SpringBoot簡單實(shí)現(xiàn)文件上傳的文章就介紹到這了,更多相關(guān)SpringBoot文件上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口
接口限流是為了保護(hù)系統(tǒng)和服務(wù),防止因?yàn)檫^多的請求而崩潰,本文主要介紹了SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口,具有一定的參考價值,感興趣的可以了解一下2024-03-03
Spring Bean實(shí)例化實(shí)現(xiàn)過程解析
這篇文章主要介紹了Spring Bean實(shí)例化實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02
Java:不支持發(fā)行版本5的超詳細(xì)簡單解決方案
發(fā)行版本5是Java5,已經(jīng)是十多年前的版本了,現(xiàn)在已經(jīng)不再被支持,如果您使用的是舊版的Java開發(fā)工具,可能會出現(xiàn)這樣的錯誤,這篇文章主要給大家介紹了關(guān)于Java:不支持發(fā)行版本5的超詳細(xì)簡單解決方案,需要的朋友可以參考下2024-01-01
淺談SpringBoot集成Quartz動態(tài)定時任務(wù)
這篇文章主要介紹了SpringBoot集成Quartz動態(tài)定時任務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

