Vue中使用wangEditor实现自定义上传图片和视频

这篇具有很好参考价值的文章主要介绍了Vue中使用wangEditor实现自定义上传图片和视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前没用过wangEditor真是一脸懵,做自己没做过的东西总是心里没谱,既然项目已经结束了那来总结一下吧

看着官网的demo发现简单了好多

官网地址:快速开始 | wangEditor

wangeditor 自定义上传,vue.js,javascript,前端

这里可以选自己的框架,我用的vue2.0

wangeditor 自定义上传,vue.js,javascript,前端

然后按照demo示例一步步开整!文章来源地址https://www.toymoban.com/news/detail-532151.html

yarn add @wangeditor/editor
# 或者 npm install @wangeditor/editor --save

yarn add @wangeditor/editor-for-vue
# 或者 npm install @wangeditor/editor-for-vue --save
<template>
  <div style="border: 1px solid #ccc">
    <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" 
      :defaultConfig="toolbarConfig" :mode="mode" ref="toolbar"
    />
    <Editor
      style="height: 500px; overflow-y: hidden"
      v-model="html"
      id="wangEdit"
      :defaultConfig="editorConfig"
      :mode="mode"
      ref="editor"
      @onCreated="onCreated" />
  </div>
</template>
<script>
import Vue from 'vue';
import { getStore } from '@/util/store';
import { uploadFile } from '@/api/system/post';
import { Boot } from '@wangeditor/editor';
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
import attachmentModule from '@wangeditor/plugin-upload-attachment';
import { createEditor } from '@wangeditor/editor'
import { DomEditor } from '@wangeditor/editor';
Boot.registerModule(attachmentModule);
export default Vue.extend({
  components: { Editor, Toolbar },
  data() {
    return {
      editor: null,
      html: '',
      // 工具栏配置
      toolbarConfig: {
        //自定义配置上传附件功能
        insertKeys: {
          index: 22, // 自定义插入的位置
          keys: ['uploadAttachment'], // “上传附件”菜单
        },
        excludeKeys: ['insertImage','insertVideo'],//去掉网络上传图片和视频
      },
      editorConfig: {
        placeholder: '请输入内容...',
        hoverbarKeys: {
          attachment: {
            menuKeys: ['downloadAttachment'], // “下载附件”菜单
          },
          image:{
            menuKeys: [],
          }
        },

        MENU_CONF: {         
          // 上传图片
          uploadImage: {
            fieldName: 'file',
            // base64LimitSize: 10 * 1024 * 1024, // 10M 以下插入 base64
            server: window.location.origin + '/api/xxx/xxx',//自定义的接口地址
            headers: {
              'Spang-Auth': getStore({ name: 'access_token' }),
            },
            async customUpload(file, insertFn) {
              const form = new FormData();
              form.append('file', file);
              uploadFile(form).then(res => {
                let { code, data } = res.data;
                if (code == 200) {
                  insertFn(data.link, data.originalName, data.domain + data.domain.name);
                } else if (code == 413) {
                  this.$message({
                    type: 'success',
                    message: res.data.message,
                  });
                }
              });
            },
          },
          // 上传视频
          uploadVideo: {
            fieldName: 'file',
            server: window.location.origin + '/apiapi/xxx/xxxx',
            headers: {
              'Spang-Auth': getStore({ name: 'access_token' }),
            },
            async customUpload(file, insertFn) {
              const form = new FormData();
              form.append('file', file);
              uploadFile(form).then(res => {
                let { code, data } = res.data;
                if (code == 200) {
                  insertFn(data.link, data.originalName, data.domain + data.domain.name);
                } else if (code == 413) {
                  this.$message({
                    type: 'success',
                    message: res.data.message,
                  });
                }
              });
            },
          },
          // 上传附件
          uploadAttachment: {
            fieldName: 'file',
            server: window.location.origin + '/api/xxx/xxxx',
            headers: {
              'Spang-Auth': getStore({ name: 'access_token' }),
            },
            // 超时时间,默认为 10 秒
            timeout: 100 * 1000, // 5 秒
            async customUpload(file, insertFn) {
              const form = new FormData();
              form.append('file', file);
              uploadFile(form).then(res => {
                let { code, data } = res.data;
                if (code == 200) {
                  insertFn(data.originalName, data.link);
                } else if (code == 413) {
                  this.$message({
                    type: 'success',
                    message: res.data.message,
                  });
                }
              });
            },
          },
        },
      },
      mode: 'default', // or 'simple'
    };
  },
  mounted() {
    const editor = createEditor({})
  },
  methods: {
    onCreated(editor) {
      this.editor = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
    },
  },

  beforeDestroy() {
    const editor = this.editor;
    if (editor == null) return;
    editor.destroy(); // 组件销毁时,及时销毁编辑器
  },
});
</script>
<style src="@wangeditor/editor/dist/css/style.css"></style>
<style lang="scss" scoped>
/deep/ .w-e-modal button {
  height: auto;
}
</style>

到了这里,关于Vue中使用wangEditor实现自定义上传图片和视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2+wangEditor5富文本编辑器(图片视频上传)并加锚链接

    官网:https://www.wangeditor.com/v5/installation.html#npm 1、安装使用 安装 在main.js中引入样式 在使用编辑器的页面引入js 模板 js 到这一步编辑完就可以正常显示了 2、上传图片、视频 1)上传到后台接口的可直接按照文档这个配置就行接口返回格式也要可文档上一致 2)自定义上传(一

    2024年02月12日
    浏览(51)
  • wangEditor 5上传图片自定义 html 样式

    由于官方文档是针对 TS 进行说明的,且并未详细提及到上传图片后对渲染的处理,这里仅针对 JS 的处理方法进行描述 通过覆写该文件后进行注册即可:https://github.com/wangeditor-team/wangEditor/blob/master/packages/basic-modules/src/modules/image/elem-to-html.ts HTML 部分 JS 部分 以上是根据文档创

    2024年02月11日
    浏览(32)
  • wangEditor富文本编辑器图片/视频上传

    wangEditor 有丰富的 API 和足够的扩展性,允许我们自定义开发菜单、模块、插件等。在 Vue、React 中运用也很方便。因此本文介绍下vue中富文本上传图片和视频。 安装引入后富文本有显示上传图片按钮,点击上传后会报 没有配置上传地址 的错误,如下图所示: 所以自定义上传

    2024年02月15日
    浏览(60)
  • [Vue3] Wangeditor富文本实现将粘贴中包含的图片自动上传后台,并替换src

    前言 吐槽: 还以为他们富文本把文字写好, 在一个个上传图片, 组成一片文章. 那就没有办法了, 只能修改下代码增加下自动上传图片功能. 后来写到一半才发现html 有个属性好像可以让跨域的图片 显示出来. meta name=\\\"referrer\\\" content=\\\"no-referrer\\\" / 以为这样就可以不用写了, 但是老大

    2024年02月04日
    浏览(47)
  • vue使用wangEditor

    导入组件 引用 npm run dev时发现报了如下错误 原因是css语言没有安装依赖 我用的是sass( 重新启动,再次报错 Node Sass 7.0.1 版与 ^4.0.0 不兼容; 解决方案: 1、npm uninstall node-sass; 2、npm i -D sass; 3、npm run dev; 项目正常启动。 补充如果Vue wangEditor报错 Cannot set property ‘uploadImgSho

    2024年02月16日
    浏览(31)
  • vue--使用wangEditor富文本

    wangEditor是一个基于jQuery的简单、开源的富文本编辑器,而Vue.js则是一种流行的JavaScript框架。将wangEditor与Vue.js结合使用,可以方便地在Vue应用中实现富文本编辑功能。本文将介绍如何在Vue中使用wangEditor,包括安装和配置wangEditor、在Vue组件中使用wangEditor以及相关的代码说明。

    2024年02月13日
    浏览(31)
  • Vue3使用wangEditor

    那么这一节我们在编辑公司信息的弹窗中使用富文本插件wangEditor官网 案例内效果: npm install @wangeditor/editor --save npm install @wangeditor/editor-for-vue@next --save 文档部分: 代码部分: 后端 需要注意的是,在35集《完成轮播图以及公司介绍接口》中 我们的参数是 set_value ,类型是 v

    2024年02月13日
    浏览(37)
  • 基于Vue+wangeditor实现富文本编辑

    一个网站需要富文本编辑器功能的原因有很多,以下是一些常见的原因: 方便用户编辑内容:富文本编辑器提供了类似于Office Word的编辑功能,使得那些不太懂HTML的用户也能够方便地编辑网站内容。 提高用户体验:富文本编辑器注重用户体验,具有轻量、可定制等特点,使

    2024年02月14日
    浏览(42)
  • vue2使用富文本wangeditor

    安装 引用 使用 在data(){}中定义editor: 然后根据需求调用就好了, this.$nextTick(()={})中处理的数据是因为后端返回来的数据结构是数组,遍历赋值标签转字符串的处理操作,如果后端返回来的是字符串直接赋值就好了。 注意: 要使用this.$nextTick(()={}),有时候会有渲染不上报错

    2024年01月22日
    浏览(33)
  • Vue3使用富文本框(wangeditor)

    毕业涉及中使用到了富文本框,所以学习使用了wangeditor富文本框,现进行总结 1.安装 2.配置wangeditor组件(src/components/wangeditor.vue) 3.父组件中

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包