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

springboot實現(xiàn)多文件上傳功能

 更新時間:2019年11月30日 09:12:13   作者:Shu2018ai  
這篇文章主要為大家詳細介紹了springboot實現(xiàn)多文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實現(xiàn)springboot的多文件上傳,首先創(chuàng)建一個springboot項目,添加spring-boot-starter-web依賴。

然后在resources下的static文件夾下創(chuàng)建uploads.html文件,文件內(nèi)容如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>多文件上傳</title>
</head>
<body>
<form action="/uploads" method="post" enctype="multipart/form-data">
  <input type="file" name="uploadFiles" value="請選擇文件" multiple>
  <input type="submit" value="上傳">
</form>
</body>
</html>

然后編寫Controller類

@RestController
public class FilesUploadController {
 
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
 
  @RequestMapping("/uploads")
  public String upload(MultipartFile[] uploadFiles, HttpServletRequest request) {
    List list = new ArrayList();//存儲生成的訪問路徑
    if (uploadFiles.length > 0) {
      for (int i = 0; i < uploadFiles.length; i++) {
        MultipartFile uploadFile = uploadFiles[i];
        //設(shè)置上傳文件的位置在該項目目錄下的uploadFile文件夾下,并根據(jù)上傳的文件日期,進行分類保存
        String realPath = request.getSession().getServletContext().getRealPath("uploadFile");
        String format = sdf.format(new Date());
        File folder = new File(realPath + format);
        if (!folder.isDirectory()) {
          folder.mkdirs();
        }
 
        String oldName = uploadFile.getOriginalFilename();
        System.out.println("oldName = " + oldName);
        String newName = UUID.randomUUID().toString() + oldName.
            substring(oldName.lastIndexOf("."), oldName.length());
        System.out.println("newName = " + newName);
        try {
          //保存文件
          uploadFile.transferTo(new File(folder, newName));
 
          //生成上傳文件的訪問路徑
          String filePath = request.getScheme() + "://" + request.getServerName() + ":"+ request.getServerPort() + "/uploadFile" + format + newName;
          list.add(filePath);
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      return list.toString();
    } else if (uploadFiles.length == 0) {
      return "請選擇文件";
    }
    return "上傳失敗";
  }
}

相比于單文件上傳,這里就多了一個遍歷的過程。

文件上傳常見配置:

#是否開啟文件上傳支持,默認(rèn)是true
spring.servlet.multipart.enabled=true 
#文件寫入磁盤的閾值,默認(rèn)是0
spring.servlet.multipart.file-size-threshold=0
#上傳文件的臨時保存位置
spring.servlet.multipart.location=D:\\upload
#單個文件的最大值,默認(rèn)是1MB
spring.servlet.multipart.max-file-size=1MB
#多個文件上傳時的總大小 值,默認(rèn)是10MB
spring.servlet.multipart.max-request-size=10MB
#是否延遲解析,默認(rèn)是false
spring.servlet.multipart.resolve-lazily=false

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring session實現(xiàn)共享單點登錄案例過程解析

    Spring session實現(xiàn)共享單點登錄案例過程解析

    這篇文章主要介紹了Spring session實現(xiàn)共享單點登錄案例過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • springboot自定義yml配置文件及其外部部署過程

    springboot自定義yml配置文件及其外部部署過程

    這篇文章主要介紹了springboot自定義yml配置文件及其外部部署過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java使用Hutool+自定義注解實現(xiàn)數(shù)據(jù)脫敏

    Java使用Hutool+自定義注解實現(xiàn)數(shù)據(jù)脫敏

    我們在使用手機銀行的時候經(jīng)常能看到APP上會將銀行卡的卡號中間部分給隱藏掉使用 ***** 來代替,在某些網(wǎng)站上查看一些業(yè)務(wù)密碼時(例如簽到密碼等)也會使用 ***** 來隱藏掉真正的密碼,那么這種方式是如何實現(xiàn)的呢,本文將給大家介紹使用Hutool+自定義注解實現(xiàn)數(shù)據(jù)脫敏
    2023-09-09
  • IDEA里找不到Maven的有效解決辦法(小白超詳細)

    IDEA里找不到Maven的有效解決辦法(小白超詳細)

    這篇文章主要給大家介紹了關(guān)于IDEA里找不到Maven的有效解決辦法,文中通過圖文將解決的辦法介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Java調(diào)用ChatGPT的實現(xiàn)代碼

    Java調(diào)用ChatGPT的實現(xiàn)代碼

    這篇文章主要介紹了Java調(diào)用ChatGPT的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法

    Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-06-06
  • springboot如何使用logback-spring配置日志格式,并分環(huán)境配置

    springboot如何使用logback-spring配置日志格式,并分環(huán)境配置

    這篇文章主要介紹了springboot如何使用logback-spring配置日志格式,并分環(huán)境配置的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 一篇文章弄懂Mybatis中#和$的區(qū)別

    一篇文章弄懂Mybatis中#和$的區(qū)別

    mybatis為我們提供了兩種支持動態(tài)sql的語法#{}以及${},兩者都是動態(tài)的向sql語句中傳入需要的參數(shù),下面這篇文章主要給大家介紹了如何通過一篇文章弄懂Mybatis中#和$區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Java7之forkjoin簡介_動力節(jié)點Java學(xué)院整理

    Java7之forkjoin簡介_動力節(jié)點Java學(xué)院整理

    Java7引入了Fork Join的概念,來更好的支持并行運算。接下來通過本文給大家分享Java7之forkjoin簡介,感興趣的朋友一起看看吧
    2017-06-06
  • Sonar編譯問題對應(yīng):File [...] can''t be indexed twice.

    Sonar編譯問題對應(yīng):File [...] can''t be indexed twice.

    今天小編就為大家分享一篇關(guān)于Sonar編譯問題對應(yīng):File [...] can't be indexed twice.,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

浪卡子县| 屏边| 玉龙| 哈密市| 丹江口市| 滨海县| 洪雅县| 满城县| 古田县| 枣阳市| 普安县| 金秀| 合水县| 游戏| 开鲁县| 西城区| 辽宁省| 沿河| 千阳县| 青铜峡市| 保亭| 曲水县| 罗江县| 岳西县| 三河市| 岳普湖县| 炎陵县| 岢岚县| 水城县| 新安县| 昌江| 阳新县| 新乐市| 秭归县| 克拉玛依市| 阜平县| 团风县| 洛浦县| 潞城市| 当阳市| 九龙坡区|