首先,引入ueditor的jsp版本,只需要更改两个文件,这里config.json没有更改,通常只需要更改这两个地方。
【
路径换成自己的路径
@RequestMapping("/config")
@ResponseBody
public String config(HttpServletRequest request, HttpServletResponse response) {
System.out.println("ueditor/config");
String json = "";
response.setContentType("application/json");
// 获取项目在磁盘的绝对路径
String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();
try {
// 将josn文件读到Stirng/SuzhouArchives/src/main/resources
json = IOUtils.toString(new FileInputStream(new File(path + "/static/js/ueditor-1.4.3.3/jsp/config.json")), Charsets.UTF_8.toString());
} catch (Exception e) {
e.printStackTrace();
}
return json;
}
//uploadImageData 换成自己的上传了 注意返回格式需固定
@RequestMapping("uploadImageData")
@ResponseBody
public Map<String,String> uploadImage(@RequestParam("upfile") MultipartFile upfile, HttpServletRequest request) throws IOException {
CommonResult re=fileService.uploadLocal("attachment", upfile);
System.out.println(re.getData());
String a = String.valueOf(re.getData());
String after2 = a.substring(a.indexOf("=",a.indexOf("=",a.indexOf("=") + 1) + 1) + 1);
after2 = after2.substring(0, after2.length() -1);
System.out.println("第二个_后面字符串为:" + after2);
//文件原名称
String fileName = upfile.getOriginalFilename();
// 保存文件的新名字
String nowName = UUID.randomUUID().toString() + "." + FilenameUtils.getExtension(fileName);
String uploadPath = "";
//返回结果信息(UEditor官方要求这个json格式)
Map<String,String> map = new HashMap<String,String >();
//是否上传成功
map.put("state", "SUCCESS");
//现在文件名称
map.put("title", nowName);
//文件原名称
map.put("original", fileName);
//文件类型 .+后缀名
map.put("type", fileName.substring(upfile.getOriginalFilename().lastIndexOf(".")));
//文件路径
// map.put("url", uploadPath); // 浏览器不能直接访问项目外目录的图片等文件,需要做虚拟路径映射
map.put("url", after2); // 这个路径的 /PathImage/ 是在配置类里指定的映射到本地的绝对路径
//文件大小(字节数)
map.put("size", upfile.getSize()+"");
return map;
}
html上需要注意
$(function() {
var ue = UE.getEditor('ueditor');
// 手动指定上传文件调用的接口(不同文件类型不同接口)
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
// 这里很重要,很重要,很重要,要和配置中的imageActionName值一样
if(action == 'uploadimage'){
// 这里调用后端我们写的图片上传接口
return '/ueditor/uploadImageData';
}else if(action == 'uploadfile'){
return '/ueditor/uploadFileData';
}else{
return this._bkGetActionUrl.call(this, action);
}
}
});