vue3使用UEditorPlus 、后端配置、上传图片等处理

前端安装

vue3安装vue-ueditor-wrap

// vue-ueditor-wrap v3 仅支持 Vue 3
npm i vue-ueditor-wrap@3.x -S
// or
yarn add vue-ueditor-wrap@3.x

下载 UEditorPlus

仓库地址 把dist文件复制到vue3项目中的public下,重命名为UEditorPlus
UEditorPlus文档
在这里插入图片描述
在这里插入图片描述

在main.js注册组件

// main.js
import { createApp } from 'vue';
import VueUeditorWrap from 'vue-ueditor-wrap';
import App from './App.vue';createApp(App).use(VueUeditorWrap).mount('#app');

写成全局组件

<template><div class="u-editor-content" style="width: 100%"><vue-ueditor-wrapv-model="content"editor-id="editor":config="editorConfig":editor-dependencies="['ueditor.config.js', 'ueditor.all.js']"style="width: 100%"/></div>
</template>
<script lang="ts" setup>
import { computed } from 'vue'
import useOuth2Store from '@/store/modules/login'
const Outh2 = useOuth2Store()const emits = defineEmits<{(e: 'update:modelValue', value: string): void
}>()const props = withDefaults(defineProps<{modelValue: string
}>(), {modelValue: ''
})const content = computed({get () {return props.modelValue || ''},set (value) {emits('update:modelValue', value)return value}
})
let editorConfig = {// 图片限制最大3MimageMaxSize: 3145728,// 富文本输入框高度initialFrameHeight: 500,// 富文本输入框宽度initialFrameWidth: '100%',// 初始化样式 编辑区自定义样式,如果自定义,最好给 p 标签如下的行高,要不输入中文时,会有跳动感initialStyle: 'body p{line-height:1.8em; margin: 0 ;} h1,h2,h3,h4,blockquote{margin: 0 ;} body table{margin: 0 ;}',autoFloatEnabled: false,// 获取上传配置路径configUrl: import.meta.env.VITE_API_URL + '/info/uEditor/config',// 上传服务路径serverUrl: import.meta.env.VITE_API_URL + '/info/uEditor/upload',// 必须配置域名,否则发版后获取不到页面资源UEDITOR_HOME_URL: location.origin + '/UEditorPlus/',// 配置请求头tokenserverHeaders: {'Authorization': `bearer ${Outh2.token}`},// 上传图片配置imageConfig: {// 禁止在线管理disableOnline: true,}
}
</script><style lang="scss" scoped>
.u-editor-content {:deep(.edui-default) {.edui-editor {border-top: none;}}:deep(.edui-editor-toolbarbox) {position: sticky;top: 0;background-color: #fff;z-index: 1100;border-top: 1px solid #eee;}:deep(body) {margin: 0 !important;* {margin: 0;}}}
</style>

到这一步,引用组件时可以展示富文本了,,但还需要改动代码,否则上传图片等一些弹框无法正常展示

进入ueditor.all.js文件,找dialogIframeUrlMap更改里面的路径,改完后,上传图片等弹框正常展示,但还需要配置上传配置json文件

在这里插入图片描述

还需要把每个html里面的PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
"http://www.w3.org/TR/html4/loose.dtd"这块删除,不然会报错
在这里插入图片描述

后端代码

config.json

可以通过后端接口返回这一块json数据,或者在public文件夹下创建一个json文件,实际上完全不需要后端配合,后端只需要提供上传接口就行

{"imageActionName": "uploadimage","imageFieldName": "upfile","imageMaxSize": 2048000,"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"],"imageCompressEnable": true,"imageCompressBorder": 1600,"imageInsertAlign": "none","imageUrlPrefix": "","imagePathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}","videoActionName": "uploadvideo","videoFieldName": "upfile","videoPathFormat": "/uploads/{yyyy}{mm}{dd}/{time}{rand:6}","videoUrlPrefix": "","videoMaxSize": 102400000,"videoAllowFiles": [".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"],"fileActionName": "uploadfile","fileFieldName": "upfile","filePathFormat": "upload/file/{yyyy}{mm}{dd}/{time}{rand:6}","fileMaxSize": 102400000,"fileAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp",".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml", ".crx"]
}

上传接口返回的格式

public function index(){$action = $this->request->param('action');switch($action){case 'config':$result = file_get_contents(ROOT_PATH.'/public/assets/addons/ueditorbjq/config.json');// json文件的路径break;case 'uploadimage':$file = $this->request->file('upfile');if($file){$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');$res = $info->getInfo();$res['state'] = 'SUCCESS';$res['url'] = '/uploads/'.$info->getSaveName();$result = json_encode($res);}break;case 'uploadvideo':$file = $this->request->file('upfile');if($file){$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');$res = $info->getInfo();$res['state'] = 'SUCCESS';$res['url'] = '/uploads/'.$info->getSaveName();$result = json_encode($res);}break;case 'uploadfile':$file = $this->request->file('upfile');if($file){$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'file');$res = $info->getInfo();$res['state'] = 'SUCCESS';$res['url'] = '/uploads/file/'.$info->getSaveName();$result = json_encode($res);}break;default:break;}return $result;}

进入ueditor.all.js文件,找UE.Editor.prototype.loadServerConfig,这里是获取上传配置地方,如果没有配置好,则不能正常进行上传操作,把后端返回的config.json放到utils.merge(me.options, config),如果是前端把json文件放到public下,是直接请求json文件就就行,而且这里是get请求,,上传不在这里处理

在这里插入图片描述

上传处理,看看后端返回的数据格式,并把图片添加到页面上,单张图片上传处理在ueditor.all.js文件,多张图片、视频、文件上传在弹框文件里面处理

在这里插入图片描述
在这里插入图片描述

正常使用与上传

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

ArcGIS支持下SWAT与CENTURY模型的结合:流域水碳氮综合模拟

目录 专题一 流域水碳氮建模 专题二 数据准备 专题三 流域水模拟 专题四 流域氮模拟 专题五 流域碳模拟 专题六 模型结果分析及地图制作 更多应用 基于ArcGIS的SWAT模型是一类比较典型的流域模型&#xff0c;结合SWAT模型和生物地球化学循环模型可以实现流域水碳氮综合模…

根据实例逐行分析NIO到底在做什么

Selector&#xff08;选择器&#xff09;是 Channel 的多路复用器&#xff0c;它可以同时监控多个 Channel 的 IO 状况&#xff0c;允许单个线程来操作多个 Channel。Channel在从Buffer中获取数据。 选择器、通道、缓冲池是NIO的核心组件。 一、新建选择器 此时选择器内只包含…

Nginx-记

Nginx是一个高性能的web服务器和反向代理服务器&#xff0c;用于HTTP、HTTPS、SMTP、POP3和IMAP协议。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 &#xff08;1&#xff09;更快 这表现在两个方面&#xff1a;一方面&#xff0c;在正常情况下&…

【OpenGL】使用 python + Qt + OpenGL 的现代渲染

伴随资源 目录 一、说明二、 关于PyQt6.x2.1 QOpenGLWidget详细说明2.2 绘画技巧 三、PyOpenGL四、OpenGL 管线五、Python集成开发环境5.1 Emacs配置5.2 pycharm环境 六、你好&#xff0c;OpenGL&#xff01;七、QGL控件八、平截头体.svg九、定义几何9.1 立即模式与保留模式9…

OpenAI发布Voice Engine模型!用AI合成你的声音!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

比torchvision更强大,从timm库引用预训练模型和本地加载的方法

1&#xff0c;介绍 torchvision是大家最常用的预训练模型来源&#xff0c;但是其包含的预训练模型种类很少&#xff0c;往往并不能满足研究者们的需求。 而timm库提供了一个更强大的替代选项。 利用如下代码查询 import timmprint(len(timm.list_models())) 输出 1032 可…

Android Studio 2023.2.1版本 kotlin编译报错踩坑

1、需求 由于最近在整理项目&#xff0c;做一些公共基础组件Maven仓库封装&#xff0c;由于之前项目jar包和kotlin版本很老&#xff0c;kotlin版本1.3.72版本 Gradle使用5.4.1 Android Studio版本是2023.2.1&#xff0c;分别依次顺序如下图所示。 如下图所示 2、分析编译报错…

如何利用大模型LLM辅助,使用Python完成将CSV快速导入MySQL数据库

目录 一、适合场景 二、开发过程说明 三、功能使用流程 四、代码 1、安装python依赖库 2、完整代码段 一、适合场景 无废话&#xff0c;CSV中有少量不合规数据需要手工处理可利用此方法&#xff0c;适合有点经验的程序员&#xff0c;可以不熟Python&#xff0c;思路还是要…

【动手学深度学习-pytorch】-9.3深度循环神经网络

到目前为止&#xff0c;我们只讨论了具有一个单向隐藏层的循环神经网络。 其中&#xff0c;隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性&#xff0c;这就不是一个大问题。 然而&#xff0c;对一个单层来说&#xff0c;这可能具有…

Oracle 19C RAC集群补丁升级

文章目录 一、补丁包概述二、OPatch检查和更新Grid用户更新OPatchOracle用户更新OPatch 三、验证Oracle Inventory的有效性四、运行 OPatch 冲突检查五、运行opatch命令检查GI HOME下是否有足够的空间六、补丁冲突检测与解决&#xff08;修补程序&#xff09;七、使用root用户应…

Linux - 第三节

改变用户类型 su 仅单纯的进行身份变化 依旧处于普通用户里面 su - 进行重新登录更改身份 退出用exit / ctrld su 用户名 改成成其他身份 对一条命令进行提权 sudo command r:可读 w:可写 x:可执行 -:对应的权限位置&#xff0c;没有权限 去掉所有权限 chmod u…

多视图三维重建-SFM简介

背景 掌握传统的多视图三维重建基本流程 总体流程 多视图三维重建的Pipieline如下图&#xff0c;总共分为四个步骤&#xff1a; 拍摄场景多视角的图像建立这些图像之间的联系&#xff08;Data Association&#xff09;SFM稀疏重建MVS稠密重建 Data Association 建立图像…

向开发板上移植ip工具:将ip工具移植到开发板系统中

一. 简介 前面一篇文章对 ip工具源码进行了交叉编译&#xff0c;生成了ip工具。文章如下&#xff1a; 向开发板上移植ip工具&#xff1a;交叉编译 ip工具-CSDN博客 本文对生成的 ip工具进行移植&#xff0c;即移植到开发板系统中&#xff0c;并确定是否可用。 二. 向开发板…

Nagios工具

一 nagios 相关概念 Nagios 是一款开源的免费网络监视工具&#xff0c;能有效监控 Windows、Linux 和 Unix 的主机状态&#xff0c;交换机路由器等网络设置&#xff0c;打印机等。在系统或服务状态异常时发出邮件或短信报警第 一时间通知网站运维人员&#xff0c;在状态恢复后…

顶顶通呼叫中心中间件-声音编码自适应配置方法(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-声音编码自适应配置方法讲解(mod_cti基于FreeSWITCH) 声音编码自适应介绍 声音编码自适应&#xff0c;通常在语音通信和音频处理领域中指的是一种能够根据信号特性和传输环境自动调整编码参数的技术。其目的是在不同的网络状况和音质要求下&#xff0c;…

5-规范设计(下):commit信息风格迥异、难以阅读,如何规范?

我们在做代码开发时&#xff0c;经常需要提交代码&#xff0c;提交代码时需要填写 Commit Message&#xff08;提交说明&#xff09;&#xff0c;否则就不允许提交。 所以在 Go 项目开发时&#xff0c;一个好的 Commit Message 至关重要&#xff1a; 可以使自己或者其他开发人…

基于SSM的百货中心供应链管理系统设计与实现(论文+源码)_kaic

摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。本次开发一套百货中心供应链管理系统有管理…

u盘插在电脑上显示要格式化磁盘怎么办

咨询&#xff1a;“U盘插入电脑&#xff0c;提示需要先格式化 才可使用。对于此种情况&#xff0c;在不需要格式化的情况下&#xff0c;是否可以恢复U盘内容&#xff1f;谢谢” 当我们尝试将U盘插入电脑时&#xff0c;有时会遇到一个令人困惑的提示&#xff1a;电脑要求我们格式…

Game Audio Programming

音频编程时游戏开发中最容易忽略&#xff0c;学习资源又是很少的环节。接下来&#xff0c;你将和我探索人耳的工作机制。 what is sound? 我们可以解释电视机是如何通过眼睛传递视觉信息的&#xff0c;但却往往无法对听觉信息做出类似的解释。 对声音的科学研究被称为声学&…