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

springboot實現(xiàn)單、多文件上傳過程(前后端都有)

 更新時間:2025年12月06日 09:23:31   作者:五顏六色的屁  
Spring Boot中實現(xiàn)文件上傳,前端使用`file`類型的`input`表單,后端通過`MultipartFile`類接收文件,上傳接口接收`MultipartFile`參數(shù),調(diào)用其方法處理文件,單文件上傳直接處理,多文件上傳需遍歷`MultipartFile`數(shù)組

簡單寫一下springboot中文件上傳的簡單實現(xiàn)。

最重要的其實就是一個文件上傳類:MultipartFile

實現(xiàn)步驟:

一.前端實現(xiàn)

h5中,使用file類型的input表單,主要有幾個值得注意的。

  • 1.表單一定要有name屬性,用來和后端參數(shù)列表中對應(yīng)
  • 2.如果是多文件同時上傳,則這幾個表單的name屬性要一樣
  • 3.name屬性建議別和java實體類中的屬性名相同

例如:

二.后端實現(xiàn)

controller中的實現(xiàn)

1.編寫一個接口

參數(shù)列表如圖:

2.這時候就是對MultipartFile類中方法的調(diào)用

其他方法,自行jdk找,我這簡單介紹幾個常用的,話不多說,直接上代碼:

  @RequestMapping("/newUserSave")
    public void newUserSave(HttpServletRequest req,
                              @RequestParam(value = "a_idPicPath") MultipartFile[] multipartFiles,
                              SmbmsUser smbmsUser){
        logger.info("UserController method newUserSave params:"+smbmsUser);
        //這個smbmsUser對象,是前端頁面的數(shù)據(jù)封裝進來的smbmsUser對象
        try {
            //多文件上傳改為數(shù)組
            for (int i = 0; i <multipartFiles.length; i++) {
            	//判斷文件是否為空
                if(!multipartFiles[i].isEmpty()){
                    //獲取原文件名
                    String oldName = multipartFiles[i].getOriginalFilename();
                    //獲取擴展名
                    String extendName = "."+FilenameUtils.getExtension(oldName);
                    int fileSize = 5000000;  //5M
                    if(multipartFiles[i].getSize()>fileSize){
                        req.setAttribute("uploadError","上傳文件太大");
                        return "useradd";
                    }else if(!".jpg".equals(extendName)){
                        req.setAttribute("uploadError","上傳文件格式不正確");
                        return "useradd";
                    }
                    //創(chuàng)建本地文件夾
                    String filePath = "d:"+ File.separator+"1_IDEA"
                            +File.separator+ UUID.randomUUID().toString()+extendName;
                    //創(chuàng)建文件
                    File file = new File(filePath);
                    if(!file.exists()){
                        file.mkdirs();
                    }
                    //將文件以流的形式上傳到本地
                    multipartFiles[i].transferTo(file);
                    if(i==0){
                    	//i對應(yīng)前端文件的順序,賦值給相應(yīng)的屬性即可
                        smbmsUser.setPicPath(filePath);
                    }else{
                        smbmsUser.setWorkPath(filePath);
                    }

                }
            }

        } catch (IOException e) {
            logger.error("UserController method newUserSave error params:"+smbmsUser,e);
            e.printStackTrace();
        }
    }

3.單文件和多文件的區(qū)別

單文件去掉[ ]就好了,再把for循環(huán)去除,其他代碼一致

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

  • mybatis配置獲取自增主鍵的操作方法

    mybatis配置獲取自增主鍵的操作方法

    當(dāng)需要剛剛插入數(shù)據(jù)庫的數(shù)據(jù)對應(yīng)的新增主鍵時,通過配置xml文件,使數(shù)據(jù)庫返回新增主鍵id,并把主鍵id與類參數(shù)對應(yīng),本文給大家介紹了mybatis配置獲取自增主鍵的操作方法,需要的朋友可以參考下
    2024-05-05
  • spring boot 使用utf8mb4的操作

    spring boot 使用utf8mb4的操作

    這篇文章主要介紹了spring boot 使用utf8mb4的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java中的@builder建造者模式詳細解析

    Java中的@builder建造者模式詳細解析

    這篇文章主要介紹了Java中的@builder建造者模式詳細解析,使用 @Builder 注解可以簡化手動編寫建造者模式的代碼,使代碼更加簡潔易讀,它可以自動生成鏈?zhǔn)秸{(diào)用的方法來設(shè)置對象的屬性,并且可以在需要時進行可選屬性的設(shè)置,需要的朋友可以參考下
    2024-01-01
  • ObjectMapper 如何忽略字段大小寫

    ObjectMapper 如何忽略字段大小寫

    這篇文章主要介紹了使用ObjectMapper實現(xiàn)忽略字段大小寫操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java實現(xiàn)微信紅包分配規(guī)則

    Java實現(xiàn)微信紅包分配規(guī)則

    這篇文章主要為大家詳細介紹了Java實現(xiàn)仿微信紅包分配規(guī)則,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • spring依賴注入知識點分享

    spring依賴注入知識點分享

    在本篇文章里小編給大家整理的是關(guān)于spring依賴注入知識點以及相關(guān)代碼內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • Java中使用ForkJoinPool的實現(xiàn)示例

    Java中使用ForkJoinPool的實現(xiàn)示例

    ForkJoinPool是一個功能強大的Java類,用于處理計算密集型任務(wù),本文主要介紹了Java中使用ForkJoinPool的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Java實現(xiàn)四則混合運算代碼示例

    Java實現(xiàn)四則混合運算代碼示例

    這篇文章主要介紹了Java實現(xiàn)四則混合運算代碼示例,文中展示了詳細代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • java中的Timer和Timertask的關(guān)系解讀

    java中的Timer和Timertask的關(guān)系解讀

    本文詳細介紹了Java中的Timer和TimerTask類,包括它們之間的關(guān)系、API的使用方法、注意事項以及操作案例,Timer是一個調(diào)度器,而TimerTask是具體的任務(wù)類,Timer僅對應(yīng)一個線程,不保證任務(wù)執(zhí)行的精確性,但線程安全,一個Timer可以調(diào)度多個TimerTask
    2024-12-12
  • 最新評論

    双流县| 盐山县| 嘉义市| 时尚| 海原县| 韩城市| 江永县| 惠东县| 谷城县| 滦平县| 吐鲁番市| 桃园市| 阳东县| 五台县| 遂平县| 尚义县| 宁波市| 宜宾县| 深水埗区| 稻城县| 博乐市| 宝山区| 织金县| 滦南县| 松阳县| 恩施市| 巴中市| 台东县| 沈丘县| 潜江市| 河源市| 个旧市| 民和| 皋兰县| 大港区| 英吉沙县| 元江| 翁牛特旗| 新巴尔虎左旗| 梁平县| 永新县|