亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Maven項(xiàng)目web多圖片上傳及格式驗(yàn)證的實(shí)現(xiàn)

 更新時(shí)間:2021年10月21日 11:46:08   作者:hah楊大仙  
本文主要介紹了Maven項(xiàng)目web多圖片上傳及格式驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

先來展示一下效果

客戶在添加的時(shí)候進(jìn)入添加頁面,需要上傳文件時(shí)的相關(guān)頁面及代碼

:前端頁面重要代碼,multiple的作用是支持多圖片上傳,此處點(diǎn)擊事件一定要使用onchange事件,切記不要誤用onclick事件?。?/p>

 注:<c:forTokens>標(biāo)簽的作用是以 delims 中的值分割循環(huán)遍歷

以下為前端頁面對(duì)應(yīng)的onchange事件的代碼及解析

 //jQuery函數(shù) 對(duì)應(yīng)上面的onchange事件
    function uploadFile() {
        //由于該JSP頁面只有一個(gè)表單,因此只需要定義下標(biāo)為0即可指定當(dāng)前表單
        let formData = new FormData($("form")[0]);
        //關(guān)鍵代碼:ajax異步上傳圖片
        $.ajax({
            url: "uploadFile",//此處對(duì)應(yīng)controller控制層中RequestMapping注解中的值
            data: formData,//需要上傳的表單數(shù)據(jù)
            type: "post",//此處要用post方式上傳,原因是get方式對(duì)上傳文件大小有限制
            //processData 默認(rèn)為true,當(dāng)設(shè)置為true的時(shí)候,jquery ajax 提交的時(shí)候不會(huì)序列化 data,而是直接使用data
            processData: false,
            //ajax 中 contentType 設(shè)置為 false 是為了避免 JQuery 對(duì)其操作,從而失去分界符,而使服務(wù)器不能正常解析文件。
            contentType: false,
            success: function (msg) {
                //判斷校驗(yàn)上傳文件的格式是否為常用圖片類型\
                let str = "";
                let split = msg.split(",");//用逗號(hào)切割 為數(shù)組
                let flag = false;
                for (let i = 0; i < split.length; i++) {
                    if (split[i].endsWith(".jpg") || split[i].endsWith(".png") || split[i].endsWith(".bmp") || split[i].endsWith(".jpeg") || split[i].endsWith(".gif")) {
                        flag = true;
                    } else {
                        //一旦不滿足上面的條件,就將旗幟flag設(shè)置為false,并打破循環(huán)
                        flag = false;
                        break;
                    }
                    //循環(huán)遍歷數(shù)組拼接字符串,src中需要添加虛擬路徑
                    str += '<img src="/img/' + split[i] + '" width="50" height="50">';
                }
                if (flag) {
                    $("[name=img]").val(msg)
                    $("#sp1").html(str)
                } else {
                    alert("上傳圖片格式錯(cuò)誤??!")
                    $("[name=img]").val("")//清空之前的代碼,后臺(tái)JSR303自動(dòng)校驗(yàn)不能為空
                }
            }
        })
    }

接下來看一下后臺(tái)controller層的圖片上傳代碼及解析

//@RequestMapping是一個(gè)用來處理請(qǐng)求地址映射的注解,可用于類或方法上。
//@RequestParam:將請(qǐng)求參數(shù)綁定到后臺(tái)控制器的方法參數(shù)上(是springmvc中接收普通參數(shù)的注解)(以此確保和前端頁面name屬性中的值一致)
    @RequestMapping("uploadFile")
    @ResponseBody //加上 @ResponseBody 后,會(huì)直接返回 json 數(shù)據(jù)。
    public String uploadFile(@RequestParam("file") MultipartFile[] files) throws IOException {
        //要存放圖片的本機(jī)地址
        String path = "D://img";
        String[] fileNames = new String[files.length];
        String imgs = "";
        for (int i = 0; i < fileNames.length; i++) {
            //UUID用于隨機(jī)生成不重復(fù)的文件名
            // getOriginalFilename()該方法用于獲取前臺(tái)上傳文件的名稱,和UUID做此處理確保上傳的文件名唯一
            fileNames[i] = UUID.randomUUID().toString() + files[i].getOriginalFilename();
            File file = new File(path, fileNames[i]);
            files[i].transferTo(file);//把文件路徑所指向的文件上傳到對(duì)應(yīng)的目錄下。
            imgs += "," + fileNames[i];
        }
        //截取imgs頭部多出來的逗號(hào)
        imgs = imgs.substring(1);
        return imgs;
    }

以上就為 Maven項(xiàng)目web多圖片上傳+上傳文件的格式驗(yàn)證

到此這篇關(guān)于Maven項(xiàng)目web多圖片上傳及格式驗(yàn)證的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Maven web多圖片上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中如何檢查數(shù)組是否包含某整數(shù)

    Java中如何檢查數(shù)組是否包含某整數(shù)

    這篇文章主要介紹了在?Java?中檢查數(shù)組是否包含某整數(shù),在本文中,我們使用了幾個(gè)內(nèi)置的方法,如anyMatch()、contains()、binarySearch()等,我們將在給定的數(shù)組中找到一個(gè)值,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java中Lambda表達(dá)式的使用詳解

    Java中Lambda表達(dá)式的使用詳解

    Lambda 表達(dá)式,也可稱為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡(jiǎn)潔緊湊
    2021-09-09
  • spring?boot常見get?、post請(qǐng)求參數(shù)處理、參數(shù)注解校驗(yàn)、參數(shù)自定義注解校驗(yàn)問題解析

    spring?boot常見get?、post請(qǐng)求參數(shù)處理、參數(shù)注解校驗(yàn)、參數(shù)自定義注解校驗(yàn)問題解析

    這篇文章主要介紹了spring?boot常見get?、post請(qǐng)求參數(shù)處理、參數(shù)注解校驗(yàn)、參數(shù)自定義注解校驗(yàn),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • SpringBoot使用前綴樹實(shí)現(xiàn)敏感詞過濾示例

    SpringBoot使用前綴樹實(shí)現(xiàn)敏感詞過濾示例

    最近項(xiàng)目用到了敏感詞過濾,本文主要就來介紹一下SpringBoot使用前綴樹實(shí)現(xiàn)敏感詞過濾示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決

    mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決

    這篇文章主要介紹了mybatis group by substr函數(shù)傳參報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java dom4j創(chuàng)建解析xml文檔過程解析

    Java dom4j創(chuàng)建解析xml文檔過程解析

    這篇文章主要介紹了Java dom4j創(chuàng)建解析xml文檔過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java如何動(dòng)態(tài)的處理接口的返回?cái)?shù)據(jù)

    java如何動(dòng)態(tài)的處理接口的返回?cái)?shù)據(jù)

    本文主要介紹了java如何動(dòng)態(tài)的處理接口的返回?cái)?shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 關(guān)于idea-web.xml版本過低怎么生成新的(web.xml報(bào)錯(cuò))問題

    關(guān)于idea-web.xml版本過低怎么生成新的(web.xml報(bào)錯(cuò))問題

    今天通過本文給大家分享idea-web.xml版本過低怎么生成新的(web.xml報(bào)錯(cuò))問題,通過更換web.xml版本解決此問題,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 深入理解Spring中的循環(huán)依賴

    深入理解Spring中的循環(huán)依賴

    Spring在注入bean的時(shí)候會(huì)做循環(huán)依賴檢查,下面這篇文章主要給大家介紹了關(guān)于Spring中循環(huán)依賴的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-05-05
  • Maven jar包下載失敗問題的處理方法

    Maven jar包下載失敗問題的處理方法

    很多同學(xué)在Maven里下載一些依賴的時(shí)候,即下載jar包的時(shí)候總是會(huì)出現(xiàn)一些問題,本文將就這個(gè)問題給大家詳細(xì)的講解一下,需要的朋友可以參考下
    2023-06-06

最新評(píng)論