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

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

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

先來展示一下效果

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

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

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

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

 //jQuery函數(shù) 對應(yīng)上面的onchange事件
    function uploadFile() {
        //由于該JSP頁面只有一個表單,因此只需要定義下標(biāo)為0即可指定當(dāng)前表單
        let formData = new FormData($("form")[0]);
        //關(guān)鍵代碼:ajax異步上傳圖片
        $.ajax({
            url: "uploadFile",//此處對應(yīng)controller控制層中RequestMapping注解中的值
            data: formData,//需要上傳的表單數(shù)據(jù)
            type: "post",//此處要用post方式上傳,原因是get方式對上傳文件大小有限制
            //processData 默認(rèn)為true,當(dāng)設(shè)置為true的時候,jquery ajax 提交的時候不會序列化 data,而是直接使用data
            processData: false,
            //ajax 中 contentType 設(shè)置為 false 是為了避免 JQuery 對其操作,從而失去分界符,而使服務(wù)器不能正常解析文件。
            contentType: false,
            success: function (msg) {
                //判斷校驗上傳文件的格式是否為常用圖片類型\
                let str = "";
                let split = msg.split(",");//用逗號切割 為數(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("上傳圖片格式錯誤!!")
                    $("[name=img]").val("")//清空之前的代碼,后臺JSR303自動校驗不能為空
                }
            }
        })
    }

接下來看一下后臺controller層的圖片上傳代碼及解析

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

以上就為 Maven項目web多圖片上傳+上傳文件的格式驗證

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

相關(guān)文章

  • 淺談@PostConstruct不被調(diào)用的原因

    淺談@PostConstruct不被調(diào)用的原因

    這篇文章主要介紹了淺談@PostConstruct不被調(diào)用的原因及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 一個Java中BigDecimal的問題記錄

    一個Java中BigDecimal的問題記錄

    這篇文章主要給大家介紹了關(guān)于Java中一個BigDecimal問題的相關(guān)資料,通過文中介紹的方法可以很方便的解決BigDecimal進(jìn)行計算的時候不管怎么計算,最后得到的值都沒有變化的問題,需要的朋友可以參考下
    2021-11-11
  • 簡單的java socket客戶端和服務(wù)端示例

    簡單的java socket客戶端和服務(wù)端示例

    這篇文章主要介紹了java的socket客戶端和服務(wù)端示例,大家參考使用吧
    2014-01-01
  • Java跨域問題分析與解決方法詳解

    Java跨域問題分析與解決方法詳解

    這篇文章主要介紹了Java跨域問題分析與解決方法,跨域問題是在Web應(yīng)用程序中,由于同源策略的限制,導(dǎo)致瀏覽器無法發(fā)送跨域請求,也無法獲取跨域響應(yīng)的問題,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Java實現(xiàn)統(tǒng)計文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    Java實現(xiàn)統(tǒng)計文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    這篇文章主要為大家分享了利用Java語言實現(xiàn)統(tǒng)計關(guān)鍵字在文檔中出現(xiàn)的次數(shù)的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • SpringBoot 集成 Druid過程解析

    SpringBoot 集成 Druid過程解析

    這篇文章主要介紹了SpringBoot 集成 Druid過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 淺析Java 常用的 4 種加密方式(MD5+Base64+SHA+BCrypt)

    淺析Java 常用的 4 種加密方式(MD5+Base64+SHA+BCrypt)

    這篇文章主要介紹了Java 常用的 4 種加密方式(MD5+Base64+SHA+BCrypt),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 深入理解MyBatis中的一級緩存與二級緩存

    深入理解MyBatis中的一級緩存與二級緩存

    這篇文章主要給大家深入的介紹了關(guān)于MyBatis中一級緩存與二級緩存的相關(guān)資料,文中詳細(xì)介紹MyBatis中一級緩存與二級緩存的工作原理及使用,對大家具有一定的參考性學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Java Swing GridBagLayout網(wǎng)格袋布局的實現(xiàn)

    Java Swing GridBagLayout網(wǎng)格袋布局的實現(xiàn)

    這篇文章主要介紹了Java Swing GridBagLayout網(wǎng)格袋布局的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JAVA Comparator 和 Comparable接口使用方法

    JAVA Comparator 和 Comparable接口使用方法

    本文介紹了Java中Comparable和Comparator接口的使用,包括它們的定義、方法和應(yīng)用場景,Comparable用于定義類的自然排序規(guī)則,而Comparator提供了一種靈活的方式來定義對象之間的排序規(guī)則,無需修改類本身,感興趣的朋友一起看看吧
    2025-03-03

最新評論

古浪县| 古交市| 玉田县| 宜兰市| 大丰市| 罗山县| 云安县| 永济市| 黑山县| 永和县| 牙克石市| 浮梁县| 崇义县| 昭通市| 罗定市| 日照市| 伊春市| 烟台市| 德化县| 和平区| 呈贡县| 蓬莱市| 基隆市| 连州市| 万山特区| 揭阳市| 东阳市| 洪雅县| 尼玛县| 巴楚县| 买车| 鹤山市| 常宁市| 南宫市| 平远县| 涿鹿县| 广东省| 唐海县| 重庆市| 盘锦市| 周口市|