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

java實(shí)現(xiàn)后臺(tái)處理base64圖片還原為文件

 更新時(shí)間:2022年02月09日 11:26:13   作者:qq_36275012  
這篇文章主要介紹了java實(shí)現(xiàn)后臺(tái)處理base64圖片還原為文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

后臺(tái)處理base64圖片還原為文件

/**
 * 將base64圖片解析成文件存放本地
 * @param imgStr
 * @return  本地臨時(shí)文件的地址
 */
private static String  generateImage(String imgStr){
    if(Strings.isNullOrEmpty(imgStr)){
        return null;
    }
    BASE64Decoder decoder = new BASE64Decoder();
    //轉(zhuǎn)換前端數(shù)據(jù)
    imgStr = imgStr.replaceAll(" ", "+");
    //去除多余部分
    imgStr=imgStr.replace("data:image/png;base64,", "");
    try {
        // Base64解碼
        byte[] b = decoder.decodeBuffer(imgStr);
        for (int i = 0; i < b.length; i++) {
            if (b[i] < 0) {// 調(diào)整異常數(shù)據(jù)
                b[i] += 256;
            }
        }
        String filepath =System.getProperty("java.io.tmpdir") +"測(cè)試"+System.currentTimeMillis()+".png";
        File file  = new File(filepath);
        if(file.exists()){
            file.delete();
        }
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(b);
        fos.flush();
        fos.close();
        logger.info("路徑"+filepath);
        return filepath;
    }catch(Exception e){
        return null;
    }
}
//imgStr=imgStr.replace(“data:image/png;base64,”, “”); 關(guān)鍵地方 根據(jù)圖片類型 過(guò)濾對(duì)應(yīng)的類型

java Base64解析

最近在業(yè)務(wù)場(chǎng)景中,需要對(duì)第三方傳遞進(jìn)來(lái)的字符進(jìn)行base64解密,根據(jù)第三方文檔提供的解析工具,對(duì)數(shù)據(jù)進(jìn)行了解析

關(guān)于Base64的解析方式如下

?String sign = "xxxxxxxxxxxxxxxxxxxxxxxx";
?sun.misc.BASE64Decoder decode = new sun.misc.BASE64Decoder();
?String json = new String(decode.decodeBuffer(sign));

使用sun.misc.BASE64Decoder對(duì)數(shù)據(jù)解析,放測(cè)試環(huán)境測(cè)試發(fā)現(xiàn)解析出來(lái)的字符串正確無(wú)誤,

但是在上線之后,根據(jù)第三方傳遞的sign,解析出來(lái)之后發(fā)現(xiàn)字符串最后多了一個(gè)字符 “7”,查詢邏輯 沒(méi)有發(fā)現(xiàn)問(wèn)題,最后猜測(cè)是sun.misc.BASE64Decoder出了問(wèn)題,于是換了Base64的解析jira

使用如下代碼解析

String sign = "xxxxxxxxxxxxxxxxxxxxxxxxx";
Base64 base64 = new Base64();
String json = new String (base64.decodeBase64(sign.getBytes()));

發(fā)現(xiàn)返回json中數(shù)據(jù)正常,問(wèn)題解決。

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

相關(guān)文章

  • java本服務(wù)如何調(diào)用本服務(wù)接口

    java本服務(wù)如何調(diào)用本服務(wù)接口

    這篇文章主要介紹了java本服務(wù)如何調(diào)用本服務(wù)接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題

    如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題

    這篇文章主要介紹了如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 使用lombok的@Data會(huì)導(dǎo)致棧溢出StackOverflowError問(wèn)題

    使用lombok的@Data會(huì)導(dǎo)致棧溢出StackOverflowError問(wèn)題

    這篇文章主要介紹了使用lombok的@Data會(huì)導(dǎo)致棧溢出StackOverflowError問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot MyBatis保姆級(jí)整合教程

    SpringBoot MyBatis保姆級(jí)整合教程

    因?yàn)镾pring Boot框架開(kāi)發(fā)的便利性,所以實(shí)現(xiàn)Spring Boot與數(shù)據(jù)訪問(wèn)層框架(例如MyBatis)的整合非常簡(jiǎn)單,主要是引入對(duì)應(yīng)的依賴啟動(dòng)器,并進(jìn)行數(shù)據(jù)庫(kù)相關(guān)參數(shù)設(shè)置即可
    2022-06-06
  • Java中處理郵件附件的方法(本地文件和在線URL)

    Java中處理郵件附件的方法(本地文件和在線URL)

    這篇文章主要介紹了在Java中處理郵件附件的方法,針對(duì)本地文件和在線URL兩種附件來(lái)源,提供了兩種解決方案,并提供了下載文件和發(fā)送郵件的代碼示例,需要的朋友可以參考下
    2025-03-03
  • springboot中如何引入AOP切面編程

    springboot中如何引入AOP切面編程

    這篇文章主要介紹了springboot中如何引入AOP切面編程問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段

    Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段

    這篇文章主要介紹了Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段,我們將重點(diǎn)關(guān)注兩種不同的方法,以展示框架的多功能性以及我們可以使用它的靈活方式。 需要的朋友可以參考下
    2019-05-05
  • java設(shè)計(jì)模式--建造者模式詳解

    java設(shè)計(jì)模式--建造者模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2021-07-07
  • Mybatis-plus如何提前獲取實(shí)體類用雪花算法生成的ID

    Mybatis-plus如何提前獲取實(shí)體類用雪花算法生成的ID

    本文主要介紹了Mybatis-plus如何提前獲取實(shí)體類用雪花算法生成的ID,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java中的LinkedHashSet集合解讀

    Java中的LinkedHashSet集合解讀

    這篇文章主要介紹了Java中的LinkedHashSet集合解讀,LInkedHashSet這個(gè)容器不知道大家在平時(shí)的工作用的多嗎,反正我基本上沒(méi)有用過(guò),所以,本文主要對(duì)于它的特點(diǎn)、使用場(chǎng)景、實(shí)現(xiàn)原理,做一個(gè)講解,希望對(duì)大家平時(shí)的工作有所幫助,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

滕州市| 应用必备| 榆中县| 云林县| 齐齐哈尔市| 泰来县| 日照市| 长垣县| 梁平县| 兴安县| 垦利县| 武邑县| 邹平县| 平邑县| 苗栗市| 新巴尔虎右旗| 樟树市| 旬阳县| 故城县| 岑溪市| 阳朔县| 龙井市| 汉阴县| 兰西县| 博兴县| 麟游县| 西贡区| 曲靖市| 会东县| 交城县| 同江市| 康乐县| 平阴县| 鞍山市| 陕西省| 井冈山市| 佛冈县| 康保县| 武冈市| 莱芜市| 莱西市|