Vue2Editor 图片上传及不允许粘贴图片

news2024/9/30 17:22:20

首先封装一下图片上传方法(纯前端):

import * as qiniu from 'qiniu-js'

export function uploadFile(file,token) {
    let fileNameLen = file.name.length;
    let startPos = file.name.lastIndexOf(".");
    //文件名
    const key = new Date().getTime() + '_' + file.name.substring(startPos,fileNameLen);
    const config = {
        useCdnDomain: true,
        region: qiniu.region.z0,
        forceDirect: true // 是否上传全部采用直传方式
    };
    const putExtra = {
        fname: file.name,
        mimeType: ['image/png', 'image/jpeg', 'image/gif']
    };
    return qiniu.upload(file, key, token, putExtra, config);
}

 页面部分:

<template>
    <VueEditor
        :editorOptions="editorSettings"
        v-model="actForm.detail"
        useCustomImageHandler
        @image-added="handleImageAdded">
    </VueEditor>
</template>

js部分:

<script>
//引入刚刚封装好的方法
import { uploadFile } from "@/utils/uploaderHelper.js"
    export default {
        data(){
            return{
                detail:'',
                editorImg: null,
     		    editorUrl: null,
                editorSettings:{
                    modules:{
                        clipboard:{
                            matchers: [[Node.ELEMENT_NODE, this.handleCustomMatcher]]
                        }
                    }
                }
            }
        },
        created(){
            //页面载入时调用后端接口获取一下上传token
        },
        methods:{
            handleImageAdded(file, Editor, cursorLocation, resetUploader) {
                uploadFile(file,this.qiniuData.token).subscribe({
                    next: (result) => {
                        console.log(result);
                    },
                    error: (err) => {
                        console.log(err)
                    },
                    complete: (e) => {
                        this.editorImg = e.key;
                        this.editorUrl = `https://scdn.usale.cn/${this.editorImg}`
                        Editor.insertEmbed(cursorLocation, "image", this.editorUrl);
                        resetUploader();
                    },
                });
            },
            handleCustomMatcher(node, Delta) {
                let ops = []
                Delta.ops.forEach(op => {
                    if (op.insert && typeof op.insert === 'string') {
                        // 如果粘贴了图片,这里会是一个对象,所以可以这样处理
                        ops.push({
                            insert: op.insert,
                        })
                    }else{
                        this.$message({
                            message:'不允许粘贴图片,请手动上传',
                            type:'warning'
                        })
                    }
                })
                Delta.ops = ops
                return Delta
            },

        }
    }
</script>

效果如下 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/919934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

postgresql 条件表达式

postgresql 条件表达式 简单CASE表达式搜索CASE表达式缩写函数nullif函数示例 coalesce函数 总结 简单CASE表达式 语法如下 case 表达式when 值1 then 结果1when 值2 then 结果2else 默认值 end;select e.first_name , e.last_name , case e.department_id when 90 then 管…

Ansible 使用 RHEL 系统角色

安装 RHEL 系统角色软件包&#xff0c;并创建符合以下条件的 playbook /home/greg/ansible/timesync.yml 在所有受管节点上运行 使用 timesync 角色 配置该角色&#xff0c;以使用当前有效的 NTP 提供商 配置该角色&#xff0c;以使用时间服务器 172.25.254.254 配置该角色&am…

C++信息学奥赛1123:图像相似度

首先&#xff0c;通过 cin 从用户输入中获取两个整数 n 和 m&#xff0c;分别表示数组的行数和列数。 接下来&#xff0c;定义两个二维数组 arr 和 att&#xff0c;分别用来存储原始数据和对比数据。数组的大小为 n 行 m 列。 使用嵌套的 for 循环&#xff0c;依次读取用户输…

Python“牵手”lazada商品详情API接口运用场景及功能介绍

lazada电商API接口是针对lazada提供的电商服务平台&#xff0c;为开发人员提供了简单、可靠的技术来与lazada电商平台进行数据交互&#xff0c;实现一系列开发、管理和营销等操作。其中包括商品详情API接口&#xff0c;通过这个API接口商家可以获取商品的详细信息&#xff0c;包…

仓库使用综合练习

目录 1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 2、安装搭建私有仓库 Harbor 3、编写Dockerfile制作Web应用系统nginx镜像&#xff0c;生成镜像nginx:v1.1&#xff0c;并推送其到私有仓库。 4、Dockerfile快速搭建自己专属的LAMP环境&#xff0c;生…

什么是深拷贝和浅拷贝?

面试回答 在计算机内存中&#xff0c;每个对象都有一个地址&#xff0c;这个地址指向对象在内存中存储的位置。当我们使用变量引用一个对象时&#xff0c;实际上是将该对象的地址赋值给变量。因此&#xff0c;如果我们将一个对象复制到另一个变量中国&#xff0c;实际上是将对象…

win11出现安全中心空白和IT管理员已限制对此应用的某些区域的访问

问题 windows安全中心服务被禁用 winr 输入services.msc 找到windows安全中心服务查看是否被禁用&#xff0c;改为启动&#xff0c;不可以改动看第三条 打开设置&#xff0c;找到应用—windows安全中心–终止–修复–重置 重启如果还是不行看第四条 家庭版系统需要打开gped…

SpringBoot整合Mybatis 简单试用

1. 导入依赖 我使用MySQL&#xff0c;需要导入MySQL的驱动依赖此外要在SpringBoot中使用Mybatis&#xff0c;则需要导入Mybatis启动器 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifact…

wazuh环境配置及案例复现

文章目录 wazuh环境配置及案例复现wazuh环境配置 案例复现 wazuh环境配置及案例复现 wazuh环境配置 进入官网下载ova软件 https://documentation.wazuh.com/current/deployment-options/virtual-machine/virtual-machine.html 打开下载的ova&#xff0c;密码和用户名会显示…

帆软报表系统未授权查看访问内网ip

子禽问于子贡曰&#xff1a;“夫子至于是邦也&#xff0c;必闻其政&#xff0c;求之与&#xff1f;抑与之与&#xff1f;”子贡曰&#xff1a;“夫子温、良、恭、俭、让以得之。夫子之求之也&#xff0c;其诸异乎人之求之与&#xff01;” 漏洞复现 未授权查看访问内网ip 构…

stm32之4.时钟体系

3.时钟体系(给单片机提供一个非常稳定的频率信号) ①可以使用三种不同的时钟源来驱动系统时钟&#xff08;SYSCLK&#xff09;&#xff0c;CPU运行的频率为168MHZ&#xff1b; HSI(RC振荡器时钟&#xff0c;也就是高速内部时钟&#xff0c;一般来说很少用&#xff0c;因为精度…

服务器基础

基础 介绍 可以理解为企业级的电脑&#xff0c;比个人使用的电脑具备更强的配置、性能、可靠性及稳定性。设计工艺和器件全部采用企业级设计&#xff0c;保障7*24小时稳定运行。 演进历史 处理性能 外观 发展方向 分类 按外形分类 按高度分类 按应用分类 按综合能力分类…

29款影音娱乐-视频类应用评测体验报告

为方便开发者更好地衡量APP在同类产品中的表现和竞争力&#xff0c;有针对性地进行产品优化&#xff0c;软件绿色联盟策划了垂类APP评测体验专题&#xff0c;目前已发布了天气类、小说类、教育学习类APP评测体验报告&#xff0c;本期将对影音娱乐类中的视频类APP围绕绿标五大标…

stm32入门

stm32是基于ARM内核框架的&#xff0c;ARM的发展如下所示。 stm32的基本信息。 stm32的命名规则。 有关GPIO。&#xff08;STM32 GPIO 详解_stm32gpio_天地神仙的博客-CSDN博客&#xff09; 实际例子。 led.h #ifndef _led_H #define _led_H#include "system.h"/* …

0103水平分片-jdbc-shardingsphere-中间件

文章目录 1 准备服务器1.1 创建server-order0容器1.2 创建server-order1容器 2、基本水平分片2.1、基本配置2.2、数据源配置2.3、标椎分片表配置2.4、行表达式2.5、分片算法配置2.6、分布式序列算法 3、多表关联3.1、创建关联表3.2、创建实体类3.3、创建Mapper3.4、配置关联表3…

IDEA项目实践——springMVC概述

系列文章目录 动力节点Java项目的开发原则与核心业务介绍 IDEA项目实践——JavaWeb简介以及Servlet编程实战 IDEA项目实践——Spring当中的切面AOP IDEA项目实践——Spring框架简介&#xff0c;以及IOC注解 IDEA项目实践——动态SQL、关系映射、注解开发 IDEWA项目实践—…

WPF 查看绑定错误——Snoop 的基本使用

关于 可以通过 Snoop 查看 WPF 程序的 Visual Tree&#xff0c;更多介绍请看 snoopwpf 快速开始 一、下载 snoopwpf.msi 安装后打开&#xff0c;选择自己的程序&#xff0c;点击 snoop&#xff08;望远镜&#xff09; 二、筛选 点击左侧下拉列表&#xff0c;选择 Show onl…

Spring框架中的Singleton和Prototype Bean作用域

Spring框架是依赖注入的事实上的框架&#xff0c;在开发可扩展、弹性和安全的云原生环境中具有良好的记录。 在使用Spring Beans时&#xff0c;初学者经常会对Spring beans和它们的作用域感到有些困惑。 以下是我对Singleton和Prototype Bean作用域的简单示例进行阐述的尝试。 …

Midjourney API 的对接和使用

“ 阅读本文大概需要 4 分钟。 ” 在人工智能绘图领域&#xff0c;想必大家听说过 Midjourney 的大名吧。 Midjourney 以其出色的绘图能力在业界独树一帜。无需过多复杂的操作&#xff0c;只要简单输入绘图指令&#xff0c;这个神奇的工具就能在瞬间为我们呈现出对应的图像。无…

C#实现简单TCP服务器和客户端网络编程

在C#中进行网络编程涉及许多类和命名空间&#xff0c;用于创建和管理网络连接、传输数据等。下面是一些主要涉及的类和命名空间&#xff1a; System.Net 命名空间&#xff1a;这个命名空间提供了大部分网络编程所需的类&#xff0c;包括&#xff1a; IPAddress&#xff1a;用于…