【精品】使用 v-md-editor 上传图片

简介

v-md-editor 是基于 Vue 开发的 markdown 编辑器组件,即支持vue2也支持vue3。

  • gitee:https://gitee.com/ckang1229/vue-markdown-editor
  • 文档:https://code-farmer-i.github.io/vue-markdown-editor/zh/

服务器端代码

@RestController
@RequestMapping("/file")
public class FileUploadController {/*** 上传文件,指定上传到的目录并重命名** @param file* @param path 文件在服务器的路径【不带问号后面的坐标】,如果路径不存在,会自动创建* @return*/@SaCheckLogin@PostMapping("/upload")@LogAnno(value = "上传文件", opt = OptEnum.INSERT)public ResultBean<String> upload(MultipartFile file, String path) {// ……return ResultBeanUtil.success(url).setMsg("文件上传成功!");}
}

上传成功返回数据示意:

[{"code": 200,"msg": "文件上传成功!","data": "http://127.0.0.1:9005/tiku-resources/ae83c411083848a69efccf7094183348.png"}
]

vue页面

<template><div><!-- 编辑 --><v-md-editormode="edit"v-model="content"height="400px":disabled-menus="[]"@upload-image="handleUploadImage"></v-md-editor><!-- 预览 --><v-md-editor v-model="content" mode="preview" /></div>
</template><script setup lang="ts" name="markdown">
import { ref } from "vue";
import { ElMessageBox } from "element-plus";
import { println } from "@/utils/util";
import { uploadPic } from "../course/api/course";
import { ResultEnum } from "@/utils/constant";
const content = ref(`请输入内容`);// 请求头:图片上传时需要登录权限
const handleUploadImage = (event, insertImage, files) => {// 拿到 files 之后上传到文件服务器,然后向编辑框中插入对应的内容const formData = new FormData();formData.append("file", files[0]);uploadPic({ file: formData }).then(res => {println("文件上传:", res);if (res && res.code === ResultEnum.SUCCESS && res.data) {insertImage({ url: res.data });}});
};
</script>

上面代码使用FormData通过axios把文件上传到服务器,然后通过url进行图片的回显。FormData介绍:FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式,创建的FormData对象会自动将form中的表单值也包含进去,包括文件内容也会被编码之后包含进去。然后后端就可以通过MartpartFile进行接收该图片文件然后进行文件的 存储 。

v-md-editor 常用API属性:

  • text:需要解析预览的 markdown 字符串。
  • v-model:支持双向绑定。
  • mode:模式。可选值:edit(纯编辑模式) editable(编辑与预览模式) preview(纯预览模式)。
  • default-fullscreen:是否默认开启全屏。
  • disabled-menus:禁用的菜单。默认值为 image 工具栏下的上传本地图片菜单

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

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

相关文章

[Cocos Creator 3.5赛车游戏]第5节 为汽车节点挂载自定义脚本

在前面的章节中您已经学会了如何创建一个汽车节点&#xff0c;这一章我们将会学习如何通过挂载自定义节点的方式让小车变得可控制&#xff0c;所以通过这一章的学习后&#xff0c;您将实现一个效果&#xff1a;开始运行后&#xff0c;小车每隔一帧就延y轴向上移动一段距离。在这…

cx_Oracle Python 库连接 Oracle 数据库时遇到报错

这个错误 DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found" 是在尝试使用 cx_Oracle Python 库连接 Oracle 数据库时遇到的。这个错误表明 cx_Oracle 无法找到 Oracle 客户端库&#xff08;通常称为 Instant Cli…

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH) 比如有些人的号码是这样的就需要用上自动外呼输入分机号了 号码1&#xff1a;182XXXX8111-1234 号码2&#xff1a;182XXXX8222 如果号码是这样的就根据以下步骤配置 注意使用这个需要&#xff1a;…

Redis学习篇2:Redis在IEDA中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境&#xff0c;以及如何使用Redis客户端。上一个文章&#xff1a;Redis学习篇1&#xff1a;初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

MySQL存储过程_触发器_游标——Baidu Comate

# 问题1&#xff1a; 帮我创建2个表student与score表&#xff0c;要求student表有id,createDate,userName,phone,age,sex,introduce, 要求score表有id,scoreName,result,studentId(student表的id外键)。 要求student表中插入5条学生信息&#xff0c;都要是中文的。 要求score表…

onload和onunload有什么区别(代码举例说明)

onload 和 onunload 是两种常用于网页中的事件处理器&#xff08;event handlers&#xff09;&#xff0c;但它们处理的是完全不同的页面生命周期事件。 onload onload 事件会在页面或指定的元素&#xff08;如图片、框架等&#xff09;完成加载后触发。对于页面整体来说&…

树莓派 Raspberry Pi M.2 HAT+ 现已发售!原理图流出!

​Raspberry Pi M.2 HAT 使您能够将 M.2 M-key 外设&#xff08;如 NVMe 驱动器和人工智能加速器&#xff09;连接到 Raspberry Pi 5。它能够提供与这些外设之间的快数据传输&#xff08;高达 500 MB/s&#xff09;&#xff0c;现在就可以从树莓派的授权经销商网络购买&#xf…

c语言:strcmp

strcmp函数是用于比较两个字符串的库函数&#xff0c;其功能是根据ASCII值逐一对两个字符串进行比较。 语法&#xff1a;strcmp(str1, str2) 返回值&#xff1a; 如果str1等于str2&#xff0c;则返回0。 如果str1小于str2&#xff0c;则返回负数&#xff08;具体值取决于C…

注意力机制篇 | MSFE:即插即用的多尺度滑窗注意力(附源码实现)

前言:Hello大家好,我是小哥谈。多尺度滑窗注意力(Multi-Scale Sliding Window Attention,MSFE)是一种用于处理图像的深度学习模型。它通过引入多尺度特征提取和滑窗注意力机制来提高图像识别的准确性。在MSFE中,模型采用多尺度卷积神经网络来提取图像的特征,然后使用滑窗…

DELPHI通过WebService进行数据交互

WebService是一种可以跨语言和平台的数据交互模式&#xff0c;使用非常广泛&#xff0c;与JSon数据格式结合&#xff0c;更是当前非常流行的一种模式&#xff0c;本章针对DELPHI通过WebService进行数据的交互做一个相对简单例子应用。 本文使用的DELPHI 版本为&#xff1a;DEL…

pdf文件怎么编辑?分享3个专业的pdf软件!

在数字化时代&#xff0c;PDF文件已成为我们工作、学习中的得力助手。然而&#xff0c;面对需要修改的PDF文件&#xff0c;许多人却感到无从下手。今天&#xff0c;就让我们一起探索如何轻松编辑PDF文件&#xff0c;并介绍几款实用的编辑软件&#xff0c;让你轻松应对各种PDF编…

创建型模式 (Python版)

单例模式 懒汉式 class SingleTon:# 类属性_obj None # 用来存储对象# 创造对象def __new__(cls, *args, **kwargs):# 如果对象不存在&#xff0c;就创造一个对象if cls._obj is None:cls._obj super().__new__(cls, *args, *kwargs)# 返回对象return cls._objif __name__…

OpenAI宫斗剧番外篇: “Ilya与Altman联手对抗微软大帝,扫除黑恶势力”,“余华”和“莫言”犀利点评

事情是这样的。 小编我是一个重度的智谱清言用户&#xff0c;最近智谱清言悄悄上线了一个“划词引用”功能后&#xff0c;我仿佛打开了新世界的大门。我甚至用这个小功能&#xff0c;玩出来了即将为你上映的《OpenAI宫斗剧番外篇》。 3.5研究测试&#xff1a;hujiaoai.cn 4研…

@Controller和@RestController区别

一、Controller 注解&#xff1a; Controller 注解用于定义一个控制器类&#xff0c;通常配合 Spring MVC 框架使用。 控制器类负责处理用户的 HTTP 请求&#xff0c;并将处理结果返回给客户端。 控制器类中的方法通常通过 RequestMapping 或其衍生注解来映射特定的 URL 请求…

Python中的数据类型转换

文章目录 一、转成整数形式二、转成浮点数形式三、转成字符串形式四、转成列表形式五、转成元祖形式六、json和字典转换1.json转字典2.字典转json 一、转成整数形式 使用int()方法&#xff0c;示例代码如下&#xff1a; a 5201314 result int(a) print(result) print(type(…

蓝牙Classic加密算法设计和实现,SAFER+,E0,E1,E2,E3(python)

概述 之前用python给大家实现了所有LE相关加密工具算法。bobwenstudy/BluetoothCryptographicToolbox: LE SMP加密算法设计和实现(python) (github.com)&#xff0c;最近重温了下Classic加密&#xff0c;顺便将Classic所有加密算法给实现了一遍。 在蓝牙Classic Spec中&#…

5.14.3 UNETR:用于 3D 医学图像分割的 Transformers

具有收缩和扩展路径的全卷积神经网络 (FCNN) 在大多数医学图像分割应用中表现出了突出的作用。在 FCNN 中&#xff0c;编码器通过学习全局和局部特征以及上下文表示来发挥不可或缺的作用&#xff0c;这些特征和上下文表示可用于解码器的语义输出预测。 在FCNN中&#xff0c;收缩…

对列表进行统计和计算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python的列表提供了内置的一些函数来实现统计、计算的功能。下面介绍几种常用的功能。 &#xff08;1&#xff09;获取指定元素出现的次数 使用列表…

数字水印 | 图像标准化论文:Digital Watermarking Robust to Geometric Distortions(二)

目录 C 变换参数的确定D 水印的影响E 可替代的标准化过程 &#x1f916;原文&#xff1a; Digital Watermarking Robust to Geometric Distortions &#x1f916;前言&#xff1a; 这是一篇 2005 年的 SCI 一区 CCF-A&#xff0c;但是网上关于它的讲解貌似挺少的。文中提出…

智能车竞赛指南:从零到一,驶向自动驾驶的未来

智能车竞赛指南&#xff1a;从零到一&#xff0c;驶向自动驾驶的未来 一、智能车竞赛概览1.1 竞赛介绍1.2 竞赛分类 二、智能车开发技术基础2.1 硬件平台2.2 软件开发 三、实战案例&#xff1a;循线小车开发3.1 系统架构3.2 代码示例 四、技术项目&#xff1a;基于ROS的视觉导航…