最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)單文件與多文件上傳功能

 更新時間:2022年01月26日 11:22:36   作者:UnIQUE?Eason  
這篇文章主要介紹了SpringBoot實現(xiàn)單文件與多文件上傳功能,Spring?MVC對文件上傳做了簡化,而在Spring?Boot中對此做了更進一步的簡化,文件上傳變得更為方便,下面開始演示,需要的小伙伴可以參考一下,希望對你有所幫助

1.單文件上傳

首先創(chuàng)建一個Spring Boot項目,并添加spring-boot-starter-web依賴

然后創(chuàng)建一個upload.jsp文件,做一個簡單的文件上傳頁面,具體代碼如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
? ? <title>Title</title>
</head>
<body>
? ? <form action="${pageContext.request.contextPath}/wjsc/upload" method="post" enctype="multipart/form-data">
? ? ? ? <input type="file" value="請選擇文件" name="uploadFile">
? ? ? ? <input type="submit" value="點擊上傳">
? ? </form>
</body>
</html>

上傳接口是wjsc/upload,注意請求方法是post,enctypemultipart/form-data

然后創(chuàng)建上傳文件接口:

@RequestMapping("/wjsc")
@RestController
public class UploadController {
? ? /**
? ? ?* 文件上傳
? ? ?*/
? ? @PostMapping("/upload")
? ? //MultipartFile接受前臺傳過來的文件
? ? public String upload(MultipartFile uploadFile,HttpServletRequest req){
? ? ? ? SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
? ? ? ? //設(shè)置上傳文件的保存路徑為項目運行目錄下的uploadFile文件夾
? ? ? ? String realPath = req.getSession().getServletContext().getRealPath("/uploadFile/");
? ? ? ? //獲取當(dāng)前日期對所上傳的文件進行歸類保存
? ? ? ? String format = sdf.format(new Date());
? ? ? ? File folder = new File(realPath+format);
? ? ? ? if (!folder.isDirectory()){//判斷是否為目錄
? ? ? ? ? ? folder.mkdirs();//不是目錄就創(chuàng)建目錄
? ? ? ? }
? ? ? ? //給上傳的文件重命名
? ? ? ? String oldName = uploadFile.getOriginalFilename();//獲取文件名稱
? ? ? ? String newName = UUID.randomUUID().toString()+oldName.substring(oldName.lastIndexOf("."),oldName.length());//設(shè)置新文件名
? ? ? ? try{
? ? ? ? ? ? //文件保存操作
? ? ? ? ? ? uploadFile.transferTo(new File(folder,newName));
? ? ? ? ? ? //生成文件訪問路徑
? ? ? ? ? ? String filePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+"/uploadFile/"+format+newName;
? ? ? ? ? ? return filePath;
? ? ? ? }catch (Exception e){
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? return "上傳失敗";
?
? ? }
}

注意:MultipartFile變量名命名要與jsp中上傳文件的name一致,不然會接收不到文件

最后測試:

運行項目,在瀏覽器中訪問upload.jsp頁面進行文件上傳

上傳成功后會返回文件訪問路徑,用這個路徑就可以訪問到剛剛上傳的圖片

2.多文件上傳

多文件上傳和單文件上傳基本一致,首先修改jsp文件,代碼如下:

%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
? ? <title>Title</title>
</head>
<body>
? ? <form action="${pageContext.request.contextPath}/wjsc/upload" method="post" enctype="multipart/form-data">
? ? ? ? <input type="file" value="請選擇文件" name="uploadFiles" multiple>
? ? ? ? <input type="submit" value="點擊上傳">
? ? </form>
</body>
</html>

然后修改上傳文件接口:

/**
? ? ?* 多文件上傳
? ? ?*/
? ? @PostMapping("/uploads")
? ? public String uploads(MultipartFile[] uploadFiles,HttpServletRequest req) {
? ? ? ? //遍歷uploadFiles數(shù)組分別儲存
? ? }

 控制器里邊的核心邏輯和單文件上傳是一樣的,只是多一個遍歷的步驟。

到此這篇關(guān)于SpringBoot實現(xiàn)單文件與多文件上傳功能的文章就介紹到這了,更多相關(guān)SpringBoot實現(xiàn)文件上傳功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SpringBoot自定義starter的完整步驟

    使用SpringBoot自定義starter的完整步驟

    這篇文章主要給大家介紹了關(guān)于使用SpringBoot自定義starter的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 鎖超時發(fā)現(xiàn)parallelStream并行流線程上下文坑解決

    鎖超時發(fā)現(xiàn)parallelStream并行流線程上下文坑解決

    這篇文章主要為大家介紹了鎖超時發(fā)現(xiàn)parallelStream并行流線程上下文坑解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Java JDK 二分法 分析demo(推薦)

    Java JDK 二分法 分析demo(推薦)

    下面小編就為大家?guī)硪黄狫ava JDK 二分法 分析demo(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • java、js中實現(xiàn)無限層級的樹形結(jié)構(gòu)方法(類似遞歸)

    java、js中實現(xiàn)無限層級的樹形結(jié)構(gòu)方法(類似遞歸)

    下面小編就為大家?guī)硪黄猨ava、js中實現(xiàn)無限層級的樹形結(jié)構(gòu)方法(類似遞歸)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Java計算時間差和日期差五種常用示例

    Java計算時間差和日期差五種常用示例

    這篇文章主要給大家介紹了關(guān)于Java計算時間差和日期差五種常用示例的相關(guān)資料,最近工作中遇到需要計算時間差和日期差,搜索了幾種計算時間差和日期差的方法,這里總結(jié)一下,需要的朋友可以參考下
    2023-08-08
  • java實現(xiàn)微信公眾號消息推送的方法詳解

    java實現(xiàn)微信公眾號消息推送的方法詳解

    這篇文章主要為大家詳細介紹了如何利用java實現(xiàn)微信公眾號消息推送的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • JavaWeb 簡單分頁實現(xiàn)代碼

    JavaWeb 簡單分頁實現(xiàn)代碼

    這篇文章主要介紹了JavaWeb 簡單分頁實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java實現(xiàn)醫(yī)院管理系統(tǒng)

    Java實現(xiàn)醫(yī)院管理系統(tǒng)

    這篇文章主要介為大家詳細紹了Java實現(xiàn)醫(yī)院管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • EntityWrapper如何在and條件中嵌套or語句

    EntityWrapper如何在and條件中嵌套or語句

    這篇文章主要介紹了EntityWrapper如何在and條件中嵌套or語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java成員變量與局部變量(動力節(jié)點Java學(xué)院整理)

    Java成員變量與局部變量(動力節(jié)點Java學(xué)院整理)

    這篇文章主要介紹了Java成員變量與局部變量的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-04-04

最新評論

雷波县| 恩施市| 嘉黎县| 定日县| 洪湖市| 达孜县| 玛沁县| 延庆县| 西城区| 小金县| 尖扎县| 大城县| 陈巴尔虎旗| 黔江区| 德昌县| 邵武市| 砀山县| 江阴市| 唐山市| 浏阳市| 雅安市| 灵宝市| 临邑县| 奉化市| 黄浦区| 沭阳县| 临西县| 仲巴县| 故城县| 广丰县| 阿拉善盟| 昌平区| 瑞金市| 娄烦县| 吉木萨尔县| 宣武区| 建阳市| 资兴市| 长春市| 屏东县| 东阿县|