base64位上傳圖片 配置虛擬路徑

一酗昼、創(chuàng)建工具類 Base64.java

package eg.demo.util;
//記得修改包路徑
import org.springframework.stereotype.Service;
import sun.misc.BASE64Decoder;
import java.io.File;
import java.io.FileOutputStream;
import java.util.UUID;
//未導(dǎo)入的包自動(dòng)補(bǔ)全即刻


@Service
public class Base64 {

    public String base64(String imageFile) {
        String type = imageFile.split(",")[0].split("/")[1].split(";")[0];
        imageFile = imageFile.split(",")[1];
        BASE64Decoder decoder = new BASE64Decoder();
        // Base64解碼
        byte[] imageByte = null;
        try {
            imageByte = decoder.decodeBuffer(imageFile);
            for (int i = 0; i < imageByte.length; ++i){
                if (imageByte[i] < 0) {// 調(diào)整異常數(shù)據(jù)
                    imageByte[i] += 256;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return Bytes2File(imageByte,type);
    }
    public static String Bytes2File(byte[] imageByte , String type)
    {
        String path = null;
       try {
           int length = imageByte.length;
           //追加文件夾
           File file = new File("D:/MusicImage");
           if(!file.exists()){
               file.mkdirs();
           }
           path = "D:/MusicImage/"+UUID.randomUUID()+ "." + type;
           FileOutputStream fos = new FileOutputStream(path);//isAppend如果為true,為追加寫入,否則為覆蓋寫入
           fos.write(imageByte,0,length);
           fos.close();
           path = path.replaceAll("D:/MusicImage/","/upload/");
       }catch (Exception e){
           e.printStackTrace();
       }
       return path;
    }
}

二博助、創(chuàng)建配置類 ImageUpLoadConfig.java ,配置虛擬路徑

package org.config;
//記得修改包路徑
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


@Configuration
public class ImageUpLoadConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//此處為你的絕對(duì)路徑配置虛擬路徑
        registry.addResourceHandler("/upload/**").addResourceLocations("file:D:/MusicImage/");
    }
}

三痹愚、修改application-dev.yml配置信息富岳,根據(jù)需要改變文件上傳大小限制

此處為了方便,直接使用-1取消上限

  tomcat:
    max-http-post-size: -1

PS:tomcat與port節(jié)點(diǎn)同級(jí)

四拯腮、前端界面

使用input標(biāo)簽窖式, type = "file"

//圖片校驗(yàn)
        //在input file內(nèi)容改變的時(shí)候觸發(fā)事件
        $('#upload-file').change(function(){
            //獲取input file的files文件數(shù)組;
            //$('#filed')獲取的是jQuery對(duì)象,.get(0)轉(zhuǎn)為原生對(duì)象;
            //這邊默認(rèn)只能選一個(gè)动壤,但是存放形式仍然是數(shù)組萝喘,所以取第一個(gè)元素使用[0];
            var file = $('#upload-file').get(0).files[0];
            //創(chuàng)建用來(lái)讀取此文件的對(duì)象
            var reader = new FileReader();
            //使用該對(duì)象讀取file文件
            reader.readAsDataURL(file);
            //讀取文件成功后執(zhí)行的方法函數(shù)
            reader.onload=function(e){
                //讀取成功后返回的一個(gè)參數(shù)e,整個(gè)的一個(gè)進(jìn)度事件
                console.log(e);
                //選擇所要顯示圖片的img琼懊,要賦值給img的src就是e中target下result里面
                //的base64編碼格式的地址
                $('#avatar').get(0).src = e.target.result;
                // $('#avatar').attr("src","e.target.result");
            };
        });

五阁簸、后端controller層

使用ajax將64位編碼后的圖片傳到后端controller

@RequestMapping("/demo/upLoadFile")
    public String insertImage(String imageFile){
        Base64 base64 = new Base64();
        String path = base64.base64(imageFile);
//debug標(biāo)記
        System.out.println(path);
        return path;
    }

使用debug模式即可看到返回的path已經(jīng)從繁雜的64位編碼變?yōu)楹?jiǎn)潔的虛擬路徑,圖片也已經(jīng)存儲(chǔ)到Base64.java配置的絕對(duì)路徑下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哼丈,一起剝皮案震驚了整個(gè)濱河市启妹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌削祈,老刑警劉巖疤苹,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異乍恐,居然都是意外死亡茴她,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門灾前,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事网杆。” “怎么了伊滋?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵碳却,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我笑旺,道長(zhǎng)昼浦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任筒主,我火速辦了婚禮关噪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乌妙。我一直安慰自己使兔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布藤韵。 她就那樣靜靜地躺著虐沥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泽艘。 梳的紋絲不亂的頭發(fā)上欲险,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音悉盆,去河邊找鬼盯荤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛焕盟,可吹牛的內(nèi)容都是我干的秋秤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼脚翘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼灼卢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起来农,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鞋真,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沃于,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩咖,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡海诲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了檩互。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片特幔。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖闸昨,靈堂內(nèi)的尸體忽然破棺而出蚯斯,到底是詐尸還是另有隱情,我是刑警寧澤饵较,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布拍嵌,位于F島的核電站,受9級(jí)特大地震影響循诉,放射性物質(zhì)發(fā)生泄漏横辆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一茄猫、第九天 我趴在偏房一處隱蔽的房頂上張望龄糊。 院中可真熱鬧,春花似錦募疮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蹋绽,卻和暖如春芭毙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卸耘。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工退敦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚣抗。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓侈百,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親翰铡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钝域,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,111評(píng)論 1 32
  • 這次羅胖又給了我們做筆記的理由,因?yàn)楣P記能讓新知識(shí)和舊知識(shí)形成互動(dòng)锭魔。 羅胖的漸進(jìn)式論證: 刻意練習(xí): 套路>——概...
    上海王爾德閱讀 716評(píng)論 0 2
  • 文/天涯明月 有夢(mèng)想就有希望迷捧,有夢(mèng)想的地方鮮花滿地织咧,色彩繽紛而絢麗胀葱。 和所有入駐簡(jiǎn)書的人一樣,...
    yps天涯明月閱讀 843評(píng)論 17 25
  • 人格修煉 人格修煉對(duì)他事業(yè)有幫助笙蒙。 首先是誠(chéng)抵屿,為人表里一致,一切都可以公之于世手趣。 第二個(gè)是敬晌该,敬畏,內(nèi)心不存邪念绿渣,...
    BruceQee閱讀 733評(píng)論 0 0
  • Hadoop 核心-HDFS 1. HDFS概述 1.1 介紹 在現(xiàn)代的企業(yè)環(huán)境中朝群,單機(jī)容量往往無(wú)法存儲(chǔ)大量數(shù)據(jù),...
    打開世界的源代碼閱讀 457評(píng)論 0 0