个人博客开发之editormd图片上传

上次集成到页面的编辑器只是一个简单的编辑器,今天写一下如何上传图片。
也是同样的思路找官方实例抄。不过后台代码得自己写
一、在添加编辑器的页面当中的js中添加图片上传

<script type="text/javascript">
    var testEditor;
    testEditor = editormd("my-editormd", {
        placeholder:'本编辑器支持Markdown编辑,左边编写,右边预览',  //默认显示的文字,这里就不解释了
        width: "90%",
        height: 640,
        syncScrolling: "single",
        path: "${pageContext.request.contextPath}/static/editormd/lib/",   //你的path路径(原资源文件中lib包在我们项目中所放的位置)
        theme: "dark",//工具栏主题
        previewTheme: "dark",//预览主题
        editorTheme: "pastel-on-dark",//编辑主题
        saveHTMLToTextarea: true,
        emoji: true,
        taskList: true,
        tocm: true,         // Using [TOCM]
        tex: true,                   // 开启科学公式TeX语言支持,默认关闭
        flowChart : true,             // 开启流程图支持,默认关闭
        sequenceDiagram: true,       // 开启时序/序列图支持,默认关闭,
        toolbarIcons : function() {  //自定义工具栏,后面有详细介绍
            return editormd.toolbarModes['full']; // full, simple, mini
        },

        imageUpload : true,
        imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
        imageUploadURL : "${pageContext.request.contextPath}/editormdPic",
        onload: function () {

        }
    });

</script>

imageUploadURL这个填写的是你图片上传服务器路径,也就是controller中@RequestMapping()中的路径
editormd要求上传成功后返回json

 /*
    上传的后台只需要返回一个 JSON 数据,结构如下:
  {
                        success : 0 | 1,           // 0 表示上传失败,1 表示上传成功
                        message : "提示的信息,上传成功或上传失败及错误信息等。",
                        url     : "图片地址"        // 上传成功时才返回
                     }
                     */

二、编写后台代码,我这里使用的是ssm
controller

 @RequestMapping("/editormdPic")
    @ResponseBody
    public JSONObject editormdPic (@RequestParam(value = "editormd-image-file", required = true) MultipartFile file,
                                   HttpServletRequest request,
                                   HttpServletResponse response) throws Exception{

        String trueFileName = file.getOriginalFilename();

        String suffix = trueFileName.substring(trueFileName.lastIndexOf("."));

        String fileName = UUID.randomUUID().toString().replace("-","")+suffix;

        String path = request.getSession().getServletContext().getRealPath("upload");


        File targetFile = new File(path, fileName);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }

        //保存
        try {
            file.transferTo(targetFile);
        } catch (Exception e) {
            e.printStackTrace();
        }


        JSONObject res = new JSONObject();
        //这就是返回给页面的json数据
        res.put("url",request.getContextPath()+"/upload/"+fileName);
        res.put("success", 1);
        res.put("message", "upload success!");

        return res;

    }

在这里我说一下过程中我遇到的问题,就是图片上传成功后, 返回了图片路径,但在预览视图里面却不显示图片。随后我查看了页面源代码,

在这里插入图片描述
其实预览视图里就是一个img标签,既然无法显示,肯定是路径问题,然后看了一下network,返现图片加载是404,我一下反应过来了,这上传上去的图片其实也是一种静态资源,要设置资源放行才可以,随后在springmvc中设置了资源放行,图片成功显示 。
在这里插入图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值