用富文本(vue-quill-editor)上傳圖片時(shí)滑凉,圖片路徑會(huì)被默認(rèn)轉(zhuǎn)為base64編碼格式统扳,上傳多個(gè)圖片時(shí)路徑過長(zhǎng)數(shù)據(jù)庫存儲(chǔ)不下導(dǎo)致報(bào)錯(cuò)

解決方案:

  1. 新建 js 文件
/*富文本編輯圖片上傳配置*/

const uploadConfig = {

  action: '/upload/image',  // 必填參數(shù) 圖片上傳地址

  methods:'POST',  // 必填參數(shù) 圖片上傳方式

  headers:{},  // 可選參數(shù) 設(shè)置請(qǐng)求頭部

  token:‘’,  // 可選參數(shù) 如果需要token驗(yàn)證,假設(shè)你的token有存放在sessionStorage

  name:'image',  // 必填參數(shù) 文件的參數(shù)名

  size:500,  // 可選參數(shù)  圖片大小畅姊,單位為Kb, 1M = 1024Kb

  accept:'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'  // 可選 可上傳的圖片格式

};

// toolbar工具欄的工具選項(xiàng)(默認(rèn)展示全部)

const toolOptions = [

  ['bold', 'italic', 'underline', 'strike'],

  ['blockquote', 'code-block'],

  [{'header':1}, {'header':2}],

  [{'list':'ordered'}, {'list':'bullet'}],

  [{'script':'sub'}, {'script':'super'}],

  [{'indent':'-1'}, {'indent':'+1'}],

  [{'direction':'rtl'}],

  [{'size': ['small', false, 'large', 'huge']}],

  [{'header': [1, 2, 3, 4, 5, 6, false]}],

  [{'color': []}, {'background': []}],

  [{'font': []}],

  [{'align': []}],

  ['clean'],

  ['link', 'image', 'video']

];

const handlers = {

  image:function image() {

    var self =this;

    var fileInput =this.container.querySelector('input.ql-image[type=file]');

    if (fileInput ===null) {

      fileInput =document.createElement('input');

      fileInput.setAttribute('type', 'file');

      // 設(shè)置圖片參數(shù)名

      if (uploadConfig.name) {

          fileInput.setAttribute('name', uploadConfig.name);

      }

      fileInput.setAttribute('accept', uploadConfig.accept);

      fileInput.classList.add('ql-image');

      // 監(jiān)聽選擇文件

      fileInput.addEventListener('change', function () {

      // 創(chuàng)建formData

        var formData =new FormData();

        formData.append(uploadConfig.name, fileInput.files[0]);

        formData.append('object','product');

        // 如果需要token且存在token

        if (uploadConfig.token) {

            formData.append('token', uploadConfig.token)

        }

        // 圖片上傳

        var xhr =new XMLHttpRequest();

        // 可設(shè)置上傳圖片的格式

        xhr.open(uploadConfig.methods, uploadConfig.action, true);

        xhr.setRequestHeader('authorization',uploadConfig.token)

        // 上傳數(shù)據(jù)成功闪幽,會(huì)觸發(fā)

        xhr.onload =function (e) {

          if (xhr.status ===200) {

            var res =JSON.parse(xhr.responseText);

            let length = self.quill.getSelection(true).index;

            //這里很重要,你圖片上傳成功后涡匀,img的src需要在這里添加盯腌,res.path就是你服務(wù)器返回的圖片鏈接。

            self.quill.insertEmbed(length, 'image', res.data);

            self.quill.setSelection(length +1)

        }

            fileInput.value =''

     };

        // 開始上傳數(shù)據(jù)

        xhr.upload.onloadstart =function (e) {

            fileInput.value =''

        };

        // 當(dāng)發(fā)生網(wǎng)絡(luò)異常的時(shí)候會(huì)觸發(fā)陨瘩,如果上傳數(shù)據(jù)的過程還未結(jié)束

        xhr.upload.onerror =function (e) {

};

        // 上傳數(shù)據(jù)完成(成功或者失斖蠊弧)時(shí)會(huì)觸發(fā)

        xhr.upload.onloadend =function (e) {

            // console.log('上傳結(jié)束')

        };

        xhr.send(formData)

});

      this.container.appendChild(fileInput);

    }

fileInput.click();

  }

};

export default {

placeholder:'',

  theme:'snow',  // 主題

  modules: {

toolbar: {

container: toolOptions,  // 工具欄選項(xiàng)

      handlers: handlers// 事件重寫

    }

}

};

  1. 在引用 quill-editor 的地方 配置 options 參數(shù)
<template>
    <div class="quilWrapper">
        <quil-edito
            ref="myTextEditor"
            v-model="articleAddForm.detail"
            class="editor"
            :options="tl"
        />
    </div>
</template>
<script>
    import tl from '@/utils/tl'
    data() {
            return {
                tl: tl
            }     
    }
</script>

3.完美解決
轉(zhuǎn)載: https://www.cnblogs.com/shuihanxiao/p/11081035.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舌劳,隨后出現(xiàn)的幾起案子帚湘,更是在濱河造成了極大的恐慌,老刑警劉巖甚淡,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件大诸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贯卦,警方通過查閱死者的電腦和手機(jī)资柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撵割,“玉大人贿堰,你說我怎么就攤上這事》缺颍” “怎么了羹与?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)庶灿。 經(jīng)常有香客問我纵搁,道長(zhǎng),這世上最難降的妖魔是什么往踢? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任腾誉,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妄辩。我一直安慰自己惑灵,他們只是感情好山上,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布眼耀。 她就那樣靜靜地躺著,像睡著了一般佩憾。 火紅的嫁衣襯著肌膚如雪哮伟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天妄帘,我揣著相機(jī)與錄音楞黄,去河邊找鬼。 笑死抡驼,一個(gè)胖子當(dāng)著我的面吹牛鬼廓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播致盟,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碎税,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了馏锡?” 一聲冷哼從身側(cè)響起雷蹂,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杯道,沒想到半個(gè)月后匪煌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡党巾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年萎庭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片齿拂。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡擎椰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出创肥,到底是詐尸還是另有隱情达舒,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布叹侄,位于F島的核電站巩搏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏趾代。R本人自食惡果不足惜贯底,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧禽捆,春花似錦笙什、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浊服,卻和暖如春统屈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牙躺。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工愁憔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孽拷。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓吨掌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親脓恕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子膜宋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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