MARKDOWN上传图片的基本实现

简介: MARKDOWN上传图片的基本实现

前言


“ 前面的文章,我们已经知道了MarkDown的集成工作,那么接下来我们来看一下我们怎么应用这个工具来上传我们的图片的操作。

今天是利用这个工具来上传我们的编辑的数据中,并且正确的展示在我们的个人编写的博客中。


正文


初始化Markdown编辑器


var editor = editormd("test-editor", {
                        // width  : "100%",
                        height: 250,
                        path: "editormd/lib/",
                        saveHTMLToTextarea: true,//这个配置,方便post提交表单,表单字段会自动加上一个字段content-html-code,形式为html格式
                        /**上传图片相关配置如下*/
                        imageUpload: true,
                        imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
                        imageUploadURL: "/blog/v1/file/uploadImageForMd",//注意你后端的上传图片服务地址
                    });


由上面可知,咱们的上传图片的地址和类型。


编写Java后台上传图片的接口


第二步是编写我们Java后台编写文件的上传接口,让我们的图片可以上传到我们的图片服务器。


    @AccessLimit(isLogIn = false)
    @PostMapping("/uploadImageForMd")
    @ResponseBody
    public Object uploadImageForMd(@RequestParam(value = "editormd-image-file", required = true)MultipartFile file,
                              HttpServletRequest request) throws Exception {
        System.out.println(file.getContentType());
        System.out.println(file.getOriginalFilename());
        String name = UUID.randomUUID().toString() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
        boolean b = iftpServer.uploadFile("", name, file.getInputStream());
        ResultForImageUploadMd result=new ResultForImageUploadMd();
        if (b) {
            result.setSuccess(1);
            result.setUrl(InitConstants.PICTURE_PREFIX + name);
            result.setMessage("上传成功");
            return result;
        } else {
            result.setSuccess(0);
            result.setMessage("上传失败");
            return result;
        }
}


上面的代码是我写的上传文件的代码,可以上传任何类型的图片,当然,可以上传我们的图片。但是,与此同时,我们也要注意markdown要求的返回的json的数据的格式。


@Data
public class ResultForImageUploadMd {
    private int success;//0表示成功,其它失败
    private String message;
    private String url;////提示信息 //一般上传失败后返回
}

这样我们就可以回显我们上传文件的具体的路径。


上传图片的效果展示


上面已经说明了markdown上传文件的所需要的所有需求,接下来,我们看一下我们的操作效果。

7.jpg8.jpg


到这里,我们已经完成了所有的操作,是不是非常的方便:


第一步:我们在前端集成我们的markdown的编辑器,初始化我们的上传的参数(这个时候,我们的markdown会自动的开启我们的上传图片的功能)


第二步:编写我们上传的文件的后台接口,保证我们的文件能够成功的上传到我们的图片服务器上面。


第三步:测试。。。。


相关文章
|
8月前
|
人工智能 自然语言处理 IDE
Trae 开发工具与使用技巧
V哥推荐字节推出的AI原生IDE——Trae,这款工具大幅提升程序员开发效率。Trae定位为“AI协同编程”伙伴,支持零基础用户通过对话完成项目开发。其核心功能包括Builder模式自动生成代码、智能问答辅助开发、上下文引用与多模态开发等。对比Cursor和Windsurf,Trae在中文支持、全自动项目管理和免费模型使用上更具优势。新手可通过3步快速上手:启动Builder模式、一键运行调试、迭代优化。立即体验Trae,开启AI时代编程新篇章!
2119 2
|
8月前
|
前端开发 数据可视化 测试技术
React音频播放列表组件开发实战:常见问题与避坑指南
本文介绍了构建React音频播放列表组件的核心架构与常见问题解决方案。通过管理播放状态、列表索引和音频进度,结合异步控制、状态清理、节流优化等技术,确保流畅的用户体验。针对移动端兼容性、内存泄漏、列表渲染性能等问题提供了具体修复方案,并分享了自定义Hook封装、可视化音频波形等进阶实践。最后,总结了性能优化法则和测试关键点,帮助开发者打造生产级可靠的音频播放组件。
250 18
|
11月前
|
缓存 前端开发 搜索推荐
React 导航栏组件 Navbar
本文介绍了如何使用React创建导航栏组件,涵盖基础概念、常见问题及解决方案。导航栏是Web应用的重要组成部分,React提供了多种方式实现功能强大且美观的导航栏。文章详细探讨了动态生成菜单、样式一致性、性能优化和可访问性等问题,并通过代码案例展示了如何结合React Router实现动态导航栏。此外,还提供了样式与响应式设计的CSS示例,确保导航栏在不同设备上表现良好。掌握这些技巧有助于开发高质量的React应用,提升用户体验。
453 21
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
589 1
|
算法 调度
电网两阶段鲁棒优化调度模型(含matlab程序)
电网两阶段鲁棒优化调度模型(含matlab程序)
|
移动开发 人工智能 前端开发
介绍一些免费 的 html 5模版网站 和配色 网站
介绍一些免费 的 html 5模版网站 和配色 网站
2930 3
|
Web App开发 监控 Java
Logstash、Filebeat安装与数据同步(+ES安装讲解)
Logstash、Filebeat安装与数据同步(+ES安装讲解)
365 0
|
小程序 开发者
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
这篇文章分享了四个不同应用场景下的微信小程序个人主页的源代码和页面效果展示,包括商城系统、外卖系统、医疗挂号和电影购票系统的个人主页。提供了完整的页面布局和样式代码,允许开发者直接复制粘贴并根据自己的项目需求进行简单的改造使用。
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
|
Oracle Java 关系型数据库
输入java -version 命令行没反应的简单解决办法【亲测有效】
输入java -version 命令行没反应的简单解决办法【亲测有效】
1497 0
|
安全 Java Linux
基于Metasploit的软件渗透测试(五)
基于Metasploit的软件渗透测试(五)
1501 0
基于Metasploit的软件渗透测试(五)