前端
安装vue-ueditor-wrap
npm i vue-ueditor-wrap
引入并注册VueUeditorWrap组件,配置组件属性
<script>
import VueUeditorWrap from 'vue-ueditor-wrap'
export default {
name: 'Ueditor',
components: {
VueUeditorWrap
},
data () {
return {
msg: '',
myConfig: {
autoHeightEnabled: false,
initialFrameHeight: 500,
initialFrameWidth: '100%',
serverUrl: '//localhost:9000/ueditor/server',
UEDITOR_HOME_URL: '/static/ueditor/'
}
}
}
}
</script>
页面引用,注意:config
<template>
<div>
<h2><img src="http://img.baidu.com/hi/jx2/j_0003.gif"/>Vue UEditor + Spring Boot演示</h2>
<hr/>
<div class="preview" v-html="msg"></div>
<vue-ueditor-wrap v-model="msg" :config="myConfig" ></vue-ueditor-wrap>
</div>
</template>
引入百度ueditor

前端效果演示

后端核心代码
@Slf4j
@RequestMapping("/ueditor")
@Controller
public class UeditorController {
@Value("${lxt.server}")
private String server;
private String userName = "admin";
private final Map<String, UeditorOnlineImage> imageMap = new ConcurrentHashMap<>();
private void add(Ueditor ueditor,String id){
UeditorOnlineImage ueditorOnlineImage = imageMap.get(id);
if(ueditorOnlineImage == null){
ueditorOnlineImage = new UeditorOnlineImage();
ueditorOnlineImage.setState(Ueditor.ACTION_SUCCESS);
}
UeditorImage ueditorImage = new UeditorImage();
ueditorImage.setMtime(LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli());
ueditorImage.setUrl(ueditor.getUrl());
ueditorOnlineImage.getList().add(ueditorImage);
imageMap.put(id,ueditorOnlineImage);
}
@RequestMapping(value="/server")
@ResponseBody
public Object server(String action, String callback, MultipartFile upfile){
Object result = null;
switch (action){
case Ueditor.ACTION_CONFIG:
result = callback+"("+Ueditor.UEDITOR_CONFIG+")";
break;
case Ueditor.ACTION_UPLOADIMAGE:
Ueditor ueditor = uploadFile(upfile);
add(ueditor,userName);
result = ueditor;
break;
case Ueditor.ACTION_UPLOADVIDEO:
result = uploadFile(upfile);
break;
case Ueditor.ACTION_LISTIMAGE:
result = callback+"("+ JSONObject.toJSONString(imageMap.get(userName))+")";
break;
default:
}
return result;
}
private Ueditor uploadFile(MultipartFile upfile){
Ueditor ueditor = new Ueditor();
ueditor.setState(Ueditor.ACTION_SUCCESS);
try{
String filePath = server+FileUtil.INSTANCE.uploadFile(upfile);
ueditor.setUrl(filePath);
ueditor.setTitle(upfile.getName());
ueditor.setOriginal(upfile.getOriginalFilename());
}catch (Exception e){
ueditor.setState(Ueditor.ACTION_FAIL);
log.error(e.getMessage(),e);
}
return ueditor;
}
}
效果展示
初始化界面

图片上传

多图上传

多图上传-在线管理

视频上传



源码
传送门:Github地址
|