扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“springboot下ueditor上传功能的实现步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot下ueditor上传功能的实现步骤”吧!
创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的10多年时间我们累计服务了上千家以及全国政企客户,如广告推广等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致夸奖。
整体项目结构展示
Springboot整合ueditor及上传功能实现的具体步骤
1、下载ueditor-1.4.3.3
这个在官网下载就行,不过貌似utf-8版本的没有资源了,源码版的下了几次都中断了,最终我是从第三方下的
2、新建一个测试页面
ueditor的根目录下有一个index.html,用它就行,源码如下
3、引入上传所需的jar包
4、新建上传文件保存目录文件夹,如下
其中的config.json是从ueditor-1.4.3.3的文件夹里拷过来,因为我发现默认上传文件路径就是config.json所在目录,而且springboot下我试了配置imagePathFormat并没有什么用。
5、新建UeditorController
用于读取ueditor.json配置文件,同时实现上传方法(当然这里我们直接使用了ueditor.jar的上传,因此显得很简单,但如果要我们自己写那就有一堆代码量了)
import com.baidu.ueditor.ActionEnter;import org.springframework.stereotype.Controller;import org.springframework.util.ClassUtils;import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.PrintWriter; /** * 百度富文本编辑器 * 描述1:config.json中配置的如图片大小限制(imageMaxSize)文件类型等在页面js中已经验证过了,后台不需要在处理 * 描述2:使用ueditor.jar的话就不需要自己 * 描述3:config.json中imageUrlPrefix配置举例:"imageUrlPrefix": "/fileupload/ueditor" * 描述3:config.json中imagePathFormat配置举例:"imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}" * 描述4:imageUrlPrefix + imagePathFormat 为上传文件的访问路径 * * zkh * 2019年11月14日 9:09 */@Controllerpublic class UeditorController { // /ueditor/jsp/config.json文件所在的父目录,上传文件默认根目录为config.json文件所在目录 private String configJsonParentPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "static/fileupload/ueditor"; /** * UEditor初始化时会以get方式请求serverUrl地址,并且需要在action=config时返回UEditor配置文件信息 * 描述:使用ueditor.jar包中的ActionEnter的话,就不需要自己再去实现其上传功能,因为ActionEnter已经帮我们实现了 */ @RequestMapping("ueditor") public void getEditorConfig(HttpServletRequest request, HttpServletResponse response, String action) { response.setContentType("application/json"); try { String exec = new ActionEnter(request, configJsonParentPath).exec(); if(action!=null && (action.equals("listfile") || action.equals("listimage"))) { exec = exec.replace(configJsonParentPath.substring(1), "/"); } PrintWriter writer = response.getWriter(); writer.write(exec); writer.flush(); writer.close(); } catch (Exception e) { e.printStackTrace(); } }}
注意看注释
6、接着,我们需要将ueditor.config.js中的serverUrl配置为我们在第5步的那个controller,如下
7、最后还要在config.json中配置下我们上传的具体细节,下面以图片上传为例
/* 上传图片配置项 */ "imageActionName": "uploadimage", /* 执行上传图片的action名称(举例:http://localhost:8080/ueditor?action=uploadimage) */ "imageFieldName": "upfile", /* 提交的图片表单名称 */ "imageMaxSize": 2048000, /* 上传大小限制,单位B */ "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ "imageCompressEnable": true, /* 是否压缩图片,默认是true */ "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ "imageInsertAlign": "none", /* 插入的图片浮动方式 */ /* imageUrlPrefix + imagePathFormat 为当前文件的访问路径 */ "imageUrlPrefix": "/fileupload/ueditor", /* 图片访问路径前缀 */ /* imagePathFormat默认以当前config.json所在的目录为根目录 */ "imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* (注意:默认以当前config.json所在的目录为根目录)上传保存路径,可以自定义保存路径和文件名格式 */ /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ /* {time} 会替换成时间戳 */ /* {yyyy} 会替换成四位年份 */ /* {yy} 会替换成两位年份 */ /* {mm} 会替换成两位月份 */ /* {dd} 会替换成两位日期 */ /* {hh} 会替换成两位小时 */ /* {ii} 会替换成两位分钟 */ /* {ss} 会替换成两位秒 */ /* 非法字符 \ : * ? " < > | */ /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
这里我们需要关注重点理解的是imageUrlPrefix 、imagePathFormat
1) 域名 +imageUrlPrefix + imagePathFormat 为当前文件的访问路径;
2)imageUrlPrefix是图片访问路径前缀,例如:http://localhost:8080/fileupload/ueditor,imageUrlPrefix就是其中的“/fileupload/ueditor”;
3)imagePathFormat是以imageUrlPrefix为根路径的文件存放的具体路径,例如:
http://localhost:8080/fileupload/ueditor/image/20190202/121222.jpg,imagePathFormat就是其中的“/image/20190202/121222.jpg”;
4)剩下其他参数就很明显了。
7、可能会遇到的问题
1、明明配置的文件最大为2048000,但是文件只有1M多点后台报错了?
解决:这是因为默认开启了springboot的上传,在application.properties中 spring.servlet.multipart.enabled=false 就可以了,或者也可以跳下它的默认最大值 spring.servlet.multipart.max-file-size=1MB,具体如下图:
2、明明修改了imagePathFormat,单还是保存在了原始的路径下?
解决:直接将config.json文件放到了我想保存文件的位置即可。
3、在线管理图片无法显示?
解决:在我们上面的UeditorController中其实已经解决了,就是当action=listfile或者action=listimage时将new ActionEnter(request, configJsonParentPath).exec()得到的字符串中的configJsonParentPath路径替换为空字符串即可
最后启动服务,打开http://localhost:8080/ueditor/index.html页面测试
到此,相信大家对“springboot下ueditor上传功能的实现步骤”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流