tinymce富文本编辑器插入图片上传到服务器

首先是富文本编辑器组件:

<!-- tinymce富文本编辑器组件 -->
<template>
  <editor v-model="content" :init="config" :disabled="disabled"/>
</template>

<script>
import tinymce from 'tinymce/tinymce'
import Editor from '@tinymce/tinymce-vue'
import 'tinymce/icons/default'
import 'tinymce/themes/silver'
import 'tinymce/plugins/code'
import 'tinymce/plugins/print'
import 'tinymce/plugins/preview'
import 'tinymce/plugins/fullscreen'
import 'tinymce/plugins/paste'
import 'tinymce/plugins/searchreplace'
import 'tinymce/plugins/save'
import 'tinymce/plugins/autosave'
import 'tinymce/plugins/link'
import 'tinymce/plugins/autolink'
import 'tinymce/plugins/image'
import 'tinymce/plugins/imagetools'
import 'tinymce/plugins/media'
import 'tinymce/plugins/table'
import 'tinymce/plugins/codesample'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/advlist'
import 'tinymce/plugins/hr'
import 'tinymce/plugins/charmap'
import 'tinymce/plugins/emoticons'
import 'tinymce/plugins/anchor'
import 'tinymce/plugins/directionality'
import 'tinymce/plugins/pagebreak'
import 'tinymce/plugins/quickbars'
import 'tinymce/plugins/nonbreaking'
import 'tinymce/plugins/visualblocks'
import 'tinymce/plugins/visualchars'
import 'tinymce/plugins/wordcount'
import 'tinymce/plugins/emoticons/js/emojis'

export default {
  name: "TinymceEditor",
  components: {Editor},
  model: {
    prop: 'value',
    event: 'change'
  },
  props: {
    value: String,
    init: Object,
    disabled: Boolean,
  },
  data() {
    return {
      content: '',
      config: Object.assign({
        height: 300,
        branding: false,
        skin_url: '/tinymce/skins/ui/oxide',
        content_css: '/tinymce/skins/content/default/content.css',
        language_url: '/tinymce/langs/zh_CN.js',
        language: 'zh_CN',
        plugins: 'code print preview fullscreen paste searchreplace save autosave link autolink image imagetools media table codesample lists advlist hr charmap emoticons anchor directionality pagebreak quickbars nonbreaking visualblocks visualchars wordcount',
        toolbar: 'fullscreen preview code | undo redo | forecolor backcolor | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | formatselect fontselect fontsizeselect | link image media emoticons charmap anchor pagebreak codesample | ltr rtl',
        toolbar_drawer: 'sliding',
        images_upload_handler: (blobInfo, success) => {
          success('data:image/jpeg;base64,' + blobInfo.base64());
        },
        file_picker_types: 'media',
        file_picker_callback: () => {
        }
      }, this.init)
    }
  },
  mounted() {
    tinymce.init({});
    console.log(this.config)
  },
  watch: {
    content() {
      this.$emit('change', this.content);
    },
    value() {
      this.content = this.value;
    }
  }
}
</script>

<style>
body .tox-tinymce-aux {
  z-index: 19892000;
}
</style>

使用:

<template>
    <tinymce-editor
       v-model="content"
       :init="editContent"
    />
</template>
import TinymceEditor from '@/components/TinymceEditor'
components: { TinymceEditor },
data(){
    return {
      content:'',
       
      images_upload_handler: (blobInfo, succFun, failFun) => {
        var formData;
        formData = new FormData();
        var file = blobInfo.blob(); //转化为易于理解的file对象
        formData.append("files", file);
        console.log(file,this)
        this.$http.post(你的上传地址, formData).then(res => {
          if (res.data.code === 0) {
            succFun(res.data.data[0].fullFilePath)
          } else {
            failFun(res.data.msg || '获取数据失败');
          }
        })
      }
    }
},
computed: {
    editContent () {
      return {
        menubar: false,
        images_upload_handler: this.images_upload_handler, 
      };
    }
  },

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值