java 改造 百度富文本 ueditor,服务端控制上传目录(当前服务器或远程服务器)

            近来用的百度富文本,有点小上火,图片默认传到项目下,这是非常不合理的,找了很多不好使,最后还是解决了,下边给大家分享下过程,本人用的ssm,其他框架原理基本相似。

小编纯手工编写,转载请声明出处,谢谢。。。。。。。。。。。。。。。。。。。

需要克服的两个问题:

1.拦截上传的请求,将上传图片的请求发送至自己的类;

2.模拟上传成功后返回的数据格式,以便百度富文本识别、图片预览等一系列操作;

前提条件:图片能上传至本项目下,否则就不必往下看了

下边进入正文:

  1.首先建立实体类 Ueditor,用于上传成功后返回富文本的数据格式

public class Ueditor {

	    private  String state; //状态
	    private  String url;   //上传url
	    private  String title;  //图片标题
	    private  String original;
	 
	    public String getState() {
	        return state;
	    }
	 
	    public void setState(String state) {
	        this.state = state;
	    }
	 
	    public String getUrl() {
	        return url;
	    }
	 
	    public void setUrl(String url) {
	        this.url = url;
	    }
	 
	    public String getTitle() {
	        return title;
	    }
	 
	    public void setTitle(String title) {
	        this.title = title;
	    }
	 
	    public String getOriginal() {
	        return original;
	    }
	 
	    public void setOriginal(String original) {
	        this.original = original;
	    }
}

2.创建 PublicMsg 类或在 Ueditor 中加上即可,此类 UEDITOR_CONFIG 属性为富文本的配置信息,内容等同于

/ueditor/jsp/config.json  的配置

public class PublicMsg {
	
	public final static String UEDITOR_CONFIG = "{\"videoMaxSize\":102400000,            \"videoActionName\":\"uploadvideo\",\"fileActionName\":\"uploadfile\",\"fileManagerListPath\":\"/ueditor/jsp/upload/file/\",\"imageCompressBorder\":1600,\"imageManagerAllowFiles\":[\".png\",\".jpg\",\".jpeg\",\".gif\",\".bmp\"],\"imageManagerListPath\":\"/ueditor/jsp/upload/image/\",\"fileMaxSize\":51200000,\"fileManagerAllowFiles\":[\".png\",\".jpg\",\".jpeg\",\".gif\",\".bmp\",\".flv\",\".swf\",\".mkv\",\".avi\",\".rm\",\".rmvb\",\".mpeg\",\".mpg\",\".ogg\",\".ogv\",\".mov\",\".wmv\",\".mp4\",\".webm\",\".mp3\",\".wav\",\".mid\",\".rar\",\".zip\",\".tar\",\".gz\",\".7z\",\".bz2\",\".cab\",\".iso\",\".doc\",\".docx\",\".xls\",\".xlsx\",\".ppt\",\".pptx\",\".pdf\",\".txt\",\".md\",\".xml\"],\"fileManagerActionName\":\"listfile\",\"snapscreenInsertAlign\":\"none\",\"scrawlActionName\":\"uploadscrawl\",\"videoFieldName\":\"upfile\",\"imageCompressEnable\":true,\"videoUrlPrefix\":\"\",\"fileManagerUrlPrefix\":\"\",\"catcherAllowFiles\":[\".png\",\".jpg\",\".jpeg\",\".gif\",\".bmp\"],\"imageManagerActionName\":\"listimage\",\"snapscreenPathFormat\":\"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}\",\"scrawlPathFormat\":\"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}\",\"scrawlMaxSize\":2048000,\"imageInsertAlign\":\"none\",\"catcherPathFormat\":\"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}\",\"catcherMaxSize\":2048000,\"snapscreenUrlPrefix\":\"\",\"imagePathFormat\":\"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}\",\"imageManagerUrlPrefix\":\"\",\"scrawlUrlPrefix\":\"\",\"scrawlFieldName\":\"upfile\",\"imageMaxSize\":2048000,\"imageAllowFiles\":[\".png\",\".jpg\",\".jpeg\",\".gif\",\".bmp\"],\"snapscreenActionName\":\"uploadimage\",\"catcherActionName\":\"catchimage\",\"fileFieldName\":\"upfile\",\"fileUrlPrefix\":\"\",\"imageManagerInsertAlign\":\"none\",\"catcherLocalDomain\":[\"127.0.0.1\",\"localhost\",\"img.baidu.com\"],\"filePathFormat\":\"/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}\",\"videoPathFormat\":\"/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}\",\"fileManagerListSize\":20,\"imageActionName\":\"ueditor\",\"imageFieldName\":\"upfile\",\"imageUrlPrefix\":\"http://47.92.220.225:8080\",\"scrawlInsertAlign\":\"none\",\"fileAllowFiles\":[\".png\",\".jpg\",\".jpeg\",\".gif\",\".bmp\",\".flv\",\".swf\",\".mkv\",\".avi\",\".rm\",\".rmvb\",\".mpeg\",\".mpg\",\".ogg\",\".ogv\",\".mov\",\".wmv\",\".mp4\",\".webm\",\".mp3\",\".wav\",\".mid\",\".rar\",\".zip\",\".tar\",\".gz\",\".7z\",\".bz2\",\".cab\",\".iso\",\".doc\",\".docx\",\".xls\",\".xlsx\",\".ppt\",\".pptx\",\".pdf\",\".txt\",\".md\",\".xml\"],\"catcherUrlPrefix\":\"\",\"imageManagerListSize\":20,\"catcherFieldName\":\"source\",\"videoAllowFiles\":[\".flv\",\".swf\",\".mkv\",\".avi\",\".rm\",\".rmvb\",\".mpeg\",\".mpg\",\".ogg\",\".ogv\",\".mov\",\".wmv\",\".mp4\",\".webm\",\".mp3\",\".wav\",\".mid\"]}";
    /**
     * Ueditor的返回状态类型
     */
    public enum UeditorMsg{
        SUCCESS("SUCCESS"),ERROR("上传失败");
        private String v;
        UeditorMsg(String v){
            this.v =v;
        }
        public String get(){
            return this.v;
        }
    }
}

3.自己上传图片的逻辑,注意里边的if 判断多次请求,参数不同走的逻辑不一样,参数param=config ,是加载配置,upfile!=null 才是上传文件

@SuppressWarnings("unused")
	@RequestMapping(value="/ueditor")
    @ResponseBody
    public JSONObject ueditor(@RequestParam("action") String param,HttpServletRequest request) {
		//判断图片是否存在
		MultipartFile upfile=null;
		CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
		if(multipartResolver.isMultipart(request)){
		    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;  
		    upfile = multiRequest.getFileMap().get("upfile");
		}
		Ueditor ueditor = new Ueditor();
		if(param!=null&param.equals("config")){
			//加载富文本的配置信息,参照图二
		return JSONObject.parseObject(PublicMsg.UEDITOR_CONFIG);	
	    
		}else if(param!=null){
	    	
	    	if(upfile!=null){
                //真正的上传,本人用的sftp ,可根据自己项目的业务,这时候就可以后台控制了      
	    	//{state:”数据状态信息”,url:”图片回显路径”,title:”文件title”,original:”文件名称”,···}
					return sftp.baiduEditUpload(upfile, "/test_video");
	    	}else{
	    		ueditor.setState("文件为空");
	    		return JSONObject.parseObject(ueditor.toString());
	    	}
	    }else{
	    	ueditor.setState("不支持该操作");
    		return JSONObject.parseObject(ueditor.toString());
	    }
    }

4. 富文本  /ueditor/ueditor.config.js  的默认配置

5.更改 /ueditor/ueditor.config.js (本人的),也就是指向图3 的方法,这时候图片上传就不走 controller.jsp了

 

6.此时就可以完整收官了,注意封装上传成功与否的数据格式,否则会出问题

 

如果解决了您的问题,请留下一个赞,这是对小编的最好鼓励,谢谢

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值