springboot+ueditor

本文介绍如何解决SpringBoot项目中使用UEditor时遇到的配置错误及上传问题,包括路径配置、前后端交互实现及具体代码示例。

首先是springboot的项目

到官网下载


解压

放到


一直出现  “ueditor.all.min.js:9 后台配置项返回格式出错,上传功能将不能正常使用!”

似乎是路径不对,原始配置是


无法找到config.json

于是自己写与后台的交互

1.路径修改


2.建后台control,写一个方法里面读取config.json.即

PublicMsg.UEDITOR_CONFIG的内容
@RequestMapping(value = "/ueditor")
	@ResponseBody
	public String ueditor(HttpServletRequest request) {

		return PublicMsg.UEDITOR_CONFIG;
	}

3.现在不会报上面的错误了。也可点击图片选择了,然后不能上传,现在我们在用户这个编辑器的页面,加入这段js

UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
    if (action == 'uploadimage' || action == 'uploadscrawl' || action == 'uploadimage') {
        return 'http://127.0.0.1:8081/imgUpload';//指定访问路径
    } else if (action == 'uploadvideo') {
        return 'http://a.b.com/video.php';
    } else {
        return this._bkGetActionUrl.call(this, action);
    }
}
4.后台需要这个方法

imgUpload来做文件上传

@RequestMapping(value = "/imgUpload")
	@ResponseBody
	public Map<String, Object> imgUpload(HttpServletRequest req) {
		Map<String, Object> rs = new HashMap<String, Object>();
		MultipartHttpServletRequest mReq = null;
		MultipartFile file = null;
		String fileName = "";
		// 原始文件名 UEDITOR创建页面元素时的alt和title属性
		String originalFileName = "";
		try {
			mReq = (MultipartHttpServletRequest) req;
			// 从config.json中取得上传文件的ID
			file = mReq.getFile("upfile");

			if (!file.isEmpty()) {
				// 取得文件的原始文件名称
				fileName = file.getOriginalFilename();
				originalFileName = fileName;

				String ext = (FilenameUtils.getExtension(file
						.getOriginalFilename())).toLowerCase();
				String storePath = "";
				if ("jpg".equals(ext) || "png".equals(ext)
						|| "jpeg".equals(ext) || "bmp".equals(ext)) {
					storePath = "upload/image/";
				} else {
					storePath = "upload/video/";
				}
				System.out.println(storePath + "----storePath");
				// 将图片和视频保存在本地服务器
				String pathRoot = req.getSession().getServletContext()
						.getRealPath("");
				String path = pathRoot + "/" + storePath;
				System.out.println(pathRoot + "----pathRoot");
				File dest = new File(path + fileName);
				if (!dest.getParentFile().exists()) {
					dest.getParentFile().mkdirs();
				}
				file.transferTo(dest);
				String doMain = "http://127.0.0.1:"+port+"/";
				String httpImgPath = doMain + storePath + fileName;

				rs.put("state", "SUCCESS");// UEDITOR的规则:不为SUCCESS则显示state的内容
				rs.put("url", httpImgPath); // 能访问到你现在图片的路径
				rs.put("title", originalFileName);
				rs.put("original", originalFileName);
			}

		} catch (Exception e) {
			e.printStackTrace();
			rs.put("state", "文件上传失败!"); // 在此处写上错误提示信息,这样当错误的时候就会显示此信息
			rs.put("url", "");
			rs.put("title", "");
			rs.put("original", "");
		}
		return rs;
	}

这样就可以进行上传了。


<think>好的,用户需要关于在Spring Boot和Vue项目中集成UEditor的教程。首先,我得回忆一下UEditor的特点,它是由百度开发的富文本编辑器,可能需要后端支持来处理上传等操作。 用户提到的是Spring Boot和Vue,所以需要分别考虑后端和前端配置。后端方面,Spring Boot需要处理文件上传的接口,可能需要配置存储路径,处理跨域问题。前端Vue部分需要引入UEditorJS文件,并初始化编辑器,同时和后端接口对接。 接下来,我需要检查UEditor的官方文档,看看是否有现成的示例或者配置说明。可能需要注意版本问题,不同版本的UEditor配置方式可能有差异。另外,UEditor需要后端配置文件,比如config.json,可能需要根据Spring Boot的结构进行调整。 然后,考虑到用户可能需要处理跨域问题,特别是在开发环境下,Vue前端和Spring Boot后端可能运行在不同的端口,需要配置CORS。同时,文件上传的路径需要正确设置,确保上传的图片或文件能够保存到指定位置,并且前端能正确访问。 另外,UEditor的初始化配置可能会涉及到设置服务器接口地址,比如指定imageActionName对应到后端的某个Controller路径。需要确保前后端路由一致,参数正确。 可能还需要处理一些常见问题,比如编辑器的实例化时机,在Vue组件生命周期中的哪个阶段初始化,避免DOM未加载完成的问题。同时,在组件销毁时正确释放资源,防止内存泄漏。 最后,用户可能需要示例代码,所以需要准备Spring Boot的Controller处理上传,以及Vue组件的代码示例。还需要检查依赖,比如是否需要引入额外的库,或者处理UEditor的依赖项。 总结下来,步骤大概是:后端配置上传接口、处理跨域、前端引入UEditor并初始化、前后端联调测试。同时,需要提醒用户注意版本兼容性和路径配置,避免常见错误。</think>### Spring Boot与Vue集成UEditor教程 #### 一、后端配置(Spring Boot) 1. **添加依赖** 在`pom.xml`中添加文件上传支持: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> ``` 2. **配置文件上传** 在`application.properties`中配置: ```properties spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 3. **实现上传接口** 创建`FileUploadController.java`处理图片上传: ```java @RestController @RequestMapping("/ueditor") public class FileUploadController { @Value("${file.upload-dir}") private String uploadDir; @PostMapping("/uploadimage") public Map<String, String> uploadImage(@RequestParam("upfile") MultipartFile file) { // 文件保存逻辑 String fileName = UUID.randomUUID() + "_" + file.getOriginalFilename(); Path path = Paths.get(uploadDir, fileName); file.transferTo(path); return Map.of("url", "/uploads/" + fileName); } } ``` #### 二、前端配置(Vue 3) 1. **引入UEditor** 将UEditor源码放入`public/ueditor`目录,在`index.html`中加载: ```html <script src="/ueditor/ueditor.config.js"></script> <script src="/ueditor/ueditor.all.min.js"></script> ``` 2. **封装Vue组件** 创建`UEditor.vue`组件: ```vue <template> <div id="editor-container"></div> </template> <script> export default { mounted() { this.editor = UE.getEditor(&#39;editor-container&#39;, { serverUrl: &#39;http://localhost:8080/ueditor/uploadimage&#39;, initialFrameHeight: 300 }) }, beforeUnmount() { this.editor.destroy() } } </script> ``` #### 三、跨域配置 在Spring Boot中配置CORS: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:8081") .allowedMethods("*"); } } ``` #### 四、部署注意事项 1. **静态资源映射** 添加资源映射配置: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/uploads/**") .addResourceLocations("file:" + uploadDir + "/"); } } ``` 2. **UEditor配置文件** 修改`ueditor.config.js`中的`serverUrl`配置: ```js window.UEDITOR_CONFIG = { serverUrl: &#39;/ueditor/upload&#39;, // ...其他配置 } ``` [^1]: UEditor官方文档中强调必须正确配置后端上传接口才能实现完整功能
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值