Editor.md配合UFile图片上传、回显
Editor.md是一个开源的Markdown在线编辑器,可作为富文本编辑器使用,UFile是Ucloud对象云存储的服务。
1. Editor.md
官网:

引入
下载在Github的源码,然后在Html中引入;
1 | <link rel="stylesheet" href="/editor.md/css/editormd.min.css"/> |
Markdown编辑器
初始化编辑器,可输入内容
1 | <div id="editor" class="sh_MdEditor"> |
1 | <!--初始化编辑器--> |
Markdown解析
对Markdown内容进行解析,显示成html,注意,需要额外引入:
1 | <script src="/editormd/lib/marked.min.js"></script> |
1 | <!--md解析器 --> |
1 | <script> |
图片上传前端
配置
图片上传需要在初始化md编辑器的js里设置:
1 | //图片上传 |
表单
编辑器上传图片,使用的是<ifram>里的form表单,如图:

只是普通的上传文件,然后对文件进行格式限制,传递文件的参数名为:editormd-file-input

Json Data
编辑器需要服务器返回Json数据,以此获得上传结果、图片回显地址。
1 | { |
图片上传Controller
通过前端传递过来的参数、需要的返回值,便可以写出一个临时的Controller:
1 | package cn.shirtiny.community.SHcommunity.Controller; |
其中,Md_ImageUpResultDTO是服务器上传完成后,返回信息的封装
1 | package cn.shirtiny.community.SHcommunity.DTO; |
2. UFile
使用UFile作为存储上传文件的云空间,因为有20G免费空间。
UFile SDK
Github地址,这里用java版的
Maven引入
1 | <dependency> |
配置信息
公钥、密钥在令牌管理里生成

为了方便修改,将这些固定信息放在xx.properties文件里
1 | #md编辑器的图片上传表单的name参数值,由插件表单决定的固定值 |
文件上传Service
- 接口:
1 | package cn.shirtiny.community.SHcommunity.Service; |
- 实现类:
授权以及配置
1 | // 对象相关API的授权器 |
执行上传
1 | PutObjectResultBean response; |
响应以及回显文件地址
1 | //上传完成后,查看response,然后获得刚刚上传图片的临时地址 |
全局异常处理
1 | package cn.shirtiny.community.SHcommunity.Advice; |
Md_ImageUploadFailedException是自定义的异常。
3. 后端完整代码
Controller
1 | package cn.shirtiny.community.SHcommunity.Controller; |
Service
1 | package cn.shirtiny.community.SHcommunity.Service.ServiceImpl; |
4. Editor.md 拓展
Md编辑器内容提交、显示,VueJs+Element组合的简单使用。
提交编辑的内容
1 | <div class="col-xs-12 col-sm-9 row_left" id="vue_Editor"> |
1 | <!--md编辑--> |
Controller
1 |
|
其中ShResultDTO为返回信息的封装
1 | package cn.shirtiny.community.SHcommunity.DTO; |
Service
接口省略…
1 |
|
其中CreateInvitationErrExceptio为自定义异常类
全局异常处理
1 | //结合@ExceptionHandler用于全局异常的处理 |
在Vue对象中对Markdown的解析
1 | <!--md查看器--> |