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

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

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

本文實(shí)現(xiàn)springboot的多文件上傳,首先創(chuàng)建一個(gè)springboot項(xiàng)目,添加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="請(qǐng)選擇文件" 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();//存儲(chǔ)生成的訪問路徑
    if (uploadFiles.length > 0) {
      for (int i = 0; i < uploadFiles.length; i++) {
        MultipartFile uploadFile = uploadFiles[i];
        //設(shè)置上傳文件的位置在該項(xiàng)目目錄下的uploadFile文件夾下,并根據(jù)上傳的文件日期,進(jìn)行分類保存
        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 "請(qǐng)選擇文件";
    }
    return "上傳失敗";
  }
}

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

文件上傳常見配置:

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java7之forkjoin簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

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

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

最新評(píng)論

观塘区| 四会市| 商都县| 五指山市| 青州市| 潮安县| 涞水县| 呼伦贝尔市| 阳新县| 南溪县| 前郭尔| 丹凤县| 色达县| 竹溪县| 靖江市| 长丰县| 沿河| 额敏县| 历史| 绥江县| 雷波县| 内黄县| 赞皇县| 克拉玛依市| 蕲春县| 衡水市| 武功县| 湖州市| 墨玉县| 清原| 信阳市| 长海县| 若尔盖县| 突泉县| 盐边县| 泰安市| 武乡县| 九江市| 大洼县| 陆河县| 衡水市|