精华内容
下载资源
问答
  • <p>How do I disable backend editor button for one particular custom post type in WordPress? In my application, <p>I do not want backend editor button for on a particular custom post type, ...
  • 拉丁美洲编辑器后端
  • 代码编辑器后端-源码

    2021-02-12 19:33:03
    快速入门工具包 -> npm安装-> NPM开始
  • GhostBacker 主题,使前端看起来像后端帖子编辑器。 设计版权2013 Ghost Foundation。 从Casper派生,这是默认的Ghost主题。 请访问Ghost:
  • 准备用于编辑器0.17.4版本的后端 主要特点是: 为Mosaico编辑器上传模板和图像 将邮件持久保存到数据库 管理员管理用户/组 下载邮件的ZIP存档 通过电子邮件发送邮件以进行测试 快速开始 参见截屏 安装 有一个 有一...
  • 网站:... 查看文档 集成ueditor编辑器, 前端代码:ueditor放入(front>>dist>>ueditor) 后端代码:ueditor放入(app>>ueditor) settings > 'apps.ueditor', UEDI...

    网站:https://ueditor.baidu.com/website/onlinedemo.html

    • 查看文档
    • 集成ueditor编辑器,
    • 前端代码:ueditor放入(front>>dist>>ueditor)
    • 后端代码:ueditor放入(app>>ueditor)
    • settings >
      'apps.ueditor',
    UEDITOR_UPLOAD_TO_SERVER = True
    UEDITOR_UPLOAD_PATH = MEDIA_ROOTUEDITOR_CONFIG_PATH = os.path.join(BASE_DIR,'front','dist','ueditor','config.json')
    • urls >
      path('ueditor/',include('apps.ueditor.urls'))
    • html >
      <script src="{% static 'ueditor/ueditor.config.js' %}"></script>
      <script src="{% static 'ueditor/ueditor.all.min.js' %}"></script>
      <script id="editor" type="text/plain">
    • js >
      传入ID
      News.prototype.initUEditor = function () {
          window.ue = UE.getEditor('editor',{
              'initialFrameHeight': 400,
              'serverUrl': '/ueditor/upload/'
          });
      };

      效果:

    注意:上传图片视频不可用

    • 上传到七牛settings>
    • # Qiniu配置
      QINIU_ACCESS_KEY = 'M4xxxxxxxxxxxxxL'
      QINIU_SECRET_KEY = '7BKV7xxxxxx4'
      QINIU_BUCKET_NAME = 'xhdake'
      QINIU_DOMAIN = 'http://7xqenu.com1.z0.glb.clouddn.com/'
      
      # 七牛和自己的服务器,最少要配置一个
      # UEditor配置
      UEDITOR_UPLOAD_TO_QINIU = True
      UEDITOR_QINIU_ACCESS_KEY = QINIU_ACCESS_KEY
      UEDITOR_QINIU_SECRET_KEY = QINIU_SECRET_KEY
      UEDITOR_QINIU_BUCKET_NAME = QINIU_BUCKET_NAME
      UEDITOR_QINIU_DOMAIN = QINIU_DOMAIN

       

    展开全文
  • report-backend:用于处理报告编辑器客户端的后端API
  • Markedit:具有Golang后端的动态全功能ReactJS注释编辑器
  • 现代的编辑器后端使用Rust编写。 维护状态: xi-editor项目当前未处于积极开发中。 尽管我们很乐意接受错误修复,但目前尚无新功能的计划。 我们想在将来的某个时候再次考虑编写文本编辑器,但是暂时我们的注意力...
  • 它是高度可定制的,具有30多个插件,完全免费和开源,可与任何文件上传后端一起使用。 “这可能是让您的用户将内容上传到您的网站的最简单方法 :cloud_selector: :sparkles: ” — 状态 建造 依存关系 文献资料 ...
  • public function upload(Request $request) { $file=$request->file('upload'); if ($file->isValid()) { //$extension=$file->getClientOriginalExtension(); $path=$file->... $filename = 'main-...
  • SpringBoot后端百度富文本编辑器的做法(Java) 1.后端加载百度富文本编辑器的配置文件congfig.json,本项目放在resources下的static.ueditor下 congfig.json: { /* 上传图片配置项 */ "imageActionName": ...

     

    SpringBoot后端百度富文本编辑器的做法(Java)

    1.后端加载百度富文本编辑器的配置文件congfig.json,本项目放在resources下的static.ueditor下

    congfig.json:

    {
        /* 上传图片配置项 */
        "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
        "imageFieldName": "upfile", /* 提交的图片表单名称 */
        "imageMaxSize": 2048000, /* 上传大小限制,单位B */
        "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
        "imageCompressEnable": true, /* 是否压缩图片,默认是true */
        "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
        "imageInsertAlign": "none", /* 插入的图片浮动方式 */
        "imageUrlPrefix": "", /* 图片访问路径前缀 */
        "imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                    /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                    /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
                                    /* {time} 会替换成时间戳 */
                                    /* {yyyy} 会替换成四位年份 */
                                    /* {yy} 会替换成两位年份 */
                                    /* {mm} 会替换成两位月份 */
                                    /* {dd} 会替换成两位日期 */
                                    /* {hh} 会替换成两位小时 */
                                    /* {ii} 会替换成两位分钟 */
                                    /* {ss} 会替换成两位秒 */
                                    /* 非法字符 \ : * ? " < > | */
                                    /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
    
        /* 涂鸦图片上传配置项 */
        "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
        "scrawlFieldName": "upfile", /* 提交的图片表单名称 */
        "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
        "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */
        "scrawlUrlPrefix": "", /* 图片访问路径前缀 */
        "scrawlInsertAlign": "none",
    
        /* 截图工具上传 */
        "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
        "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
        "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
        "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
    
        /* 抓取远程图片配置 */
        "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
        "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
        "catcherFieldName": "source", /* 提交的图片列表表单名称 */
        "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
        "catcherUrlPrefix": "", /* 图片访问路径前缀 */
        "catcherMaxSize": 2048000, /* 上传大小限制,单位B */
        "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
    
        /* 上传视频配置 */
        "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
        "videoFieldName": "upfile", /* 提交的视频表单名称 */
        "videoPathFormat": "/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
        "videoUrlPrefix": "", /* 视频访问路径前缀 */
        "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */
        "videoAllowFiles": [
            ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
            ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
    
        /* 上传文件配置 */
        "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
        "fileFieldName": "upfile", /* 提交的文件表单名称 */
        "filePathFormat": "/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
        "fileUrlPrefix": "", /* 文件访问路径前缀 */
        "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */
        "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"
        ], /* 上传文件格式显示 */
    
        /* 列出指定目录下的图片 */
        "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
        "imageManagerListPath": "/ueditor/jsp/upload/image/", /* 指定要列出图片的目录 */
        "imageManagerListSize": 20, /* 每次列出文件数量 */
        "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
        "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
        "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
    
        /* 列出指定目录下的文件 */
        "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
        "fileManagerListPath": "/ueditor/jsp/upload/file/", /* 指定要列出文件的目录 */
        "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
        "fileManagerListSize": 20, /* 每次列出文件数量 */
        "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"
        ] /* 列出的文件类型 */
    
    }

    2.直接写后端的controller,前端直接调用接口dispatch接口,初始化的时候action的值是config空,本文只写了上传图片当action的值是uploadimage上传图片

    
    import cn.thinkjoy.springboot.business.response.HttpResponse;
    import cn.thinkjoy.springboot.homework.utils.ResultUtil;
    import cn.thinkjoy.springboot.utils.CodeProduceUtil;
    import cn.thinkjoy.springboot.utils.UploadUtIl;
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import com.baidu.ueditor.define.AppInfo;
    import com.baidu.ueditor.define.BaseState;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiImplicitParam;
    import io.swagger.annotations.ApiOperation;
    import org.apache.commons.io.FilenameUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.CrossOrigin;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.MultipartException;
    import org.springframework.web.multipart.MultipartFile;
    import org.springframework.web.multipart.MultipartHttpServletRequest;
    import org.springframework.web.multipart.commons.CommonsMultipartResolver;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.util.Iterator;
    
    
    /**
     * 〈功能简述〉<br>
     * 〈〉
     *
     * @author leichunhong
     * @create 2020-11-09
     * @since 1.0.0
     */
    @RestController
    @RequestMapping("/upload")
    @Api(value = "文件上传", tags = "文件上传")
    public class Upload {
    
        @Value("${file.uploadFolder}")
        private String uploadFolder;
    
        @Value("${file.upload.nama}")
        private String reurl;
    
        
        @CrossOrigin
        @RequestMapping(value = "/dispatch", method = {RequestMethod.POST, RequestMethod.GET})
        public void config(HttpServletRequest request, HttpServletResponse response, String action) throws MultipartException {
            response.setContentType("application/json");
            String  path="";
            try {
                //获取config.json的地址读取
                if ("config".equals(action)) {    //如果是初始化
                    String file = "static/ueditor/config.json";
                    String exec = readFile(request, file);
                    response.setCharacterEncoding("UTF-8");
                    response.setContentType("application/javascript");
                    response.getWriter().write(exec);
                    response.getWriter().close();
                } else if ("uploadimage".equals(action)) {    //如果是上传图片、
    
                    //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
                    CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                            request.getSession().getServletContext());
                    //检查form中是否有enctype="multipart/form-data"
                    if (multipartResolver.isMultipart(request)) {
                        //将request变成多部分request
                        MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
                        //获取multiRequest 中所有的文件名
                        Iterator iter = multiRequest.getFileNames();
    
                        while (iter.hasNext()) {
                            //一次遍历所有文件
                            MultipartFile multipartFile = multiRequest.getFile(iter.next().toString());
                            if (multipartFile != null) {
                                // 项目在容器中实际发布运行的根路径
                                String realPath = uploadFolder;
                                // 自定义的文件名称
                                String trueFileName = CodeProduceUtil.getCode() + "." + FilenameUtils.getExtension(multipartFile.getOriginalFilename());
                                // 设置存放图片文件的路径
                                path = realPath + trueFileName;
                                File file = new File(path);
                                multipartFile.transferTo(file);
                                path = reurl + "/upload/" + trueFileName;
    
                                //组装百度上传图片返回连接
                                JSONObject jsonobject = new JSONObject();
                                jsonobject.put("state", "SUCCESS");
                                jsonobject.put("original", multipartFile.getName());
                                jsonobject.put("size", multipartFile.getSize());
                                jsonobject.put("title", "图片");
                                jsonobject.put("type", FilenameUtils.getExtension(multipartFile.getOriginalFilename()));
                                jsonobject.put("url", path);
                                response.setHeader("Access-Control-Allow-Origin", "*");//设置该图片允许跨域访问
                                response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,X_Requested_With");//设置允许的跨域header
                                response.setContentType("application/json;charset=utf-8");
                                response.getWriter().write(jsonobject.toString());
                                response.getWriter().close();
                            }
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
            }
        }
    
    
    
        private String readFile(HttpServletRequest request, String file) throws IOException {
    
            StringBuilder builder = new StringBuilder();
    
            try {
                InputStream inputStream = ClassLoader.getSystemResourceAsStream(file);
                InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
                BufferedReader bfReader = new BufferedReader(reader);
    
                String tmpContent = null;
    
                while ((tmpContent = bfReader.readLine()) != null) {
                    builder.append(tmpContent);
                }
    
                bfReader.close();
    
            } catch (UnsupportedEncodingException e) {
                // 忽略
            }
    
            JSONObject jSONObject = filter(builder.toString());
            String result = jSONObject.toJSONString();
            String callbackName = request.getParameter("callback");
    
            if (callbackName != null) {
    
                if (!validCallbackName(callbackName)) {
                    return new BaseState(false, AppInfo.ILLEGAL).toJSONString();
                }
    
                return callbackName + "(" + result + ");";
    
            } else {
                return result;
            }
        }
    
    
        // 过滤输入字符串, 剔除多行注释以及替换掉反斜杠
        private JSONObject filter(String input) {
            JSONObject jSONObject = JSON.parseObject(input.replaceAll("/\\*[\\s\\S]*?\\*/", ""));
            return jSONObject;
        }
    
        /**
         * callback参数验证
         */
        public boolean validCallbackName(String name) {
            if (name.matches("^[a-zA-Z_]+[\\w0-9_]*$")) {
                return true;
            }
            return false;
        }
    
    
    }
    

    3.上传图片的路径和域名配置,图片上传到后端项目的data/file目录下,file.upload.nama是后端项目域名

    file.uploadFolder=/data/file/
    
    #上传文件本地域名
    file.upload.nama=http://www.xxx.com

     

    展开全文
  • 后端独立的网络视觉作曲家。 演示版 在此处签出演示-https: 文献资料 请参考 执照 麻省理工学院 用 :red_heart_selector: 在孟加拉国达卡的
  • 该项目着重于易于使用的快速DNS编辑器。 它使用MySQL数据库后端来保持快速更新。 它支持绑定视图。 当我想到这里要添加的内容时,还会添加更多内容
  • 微信小程序富文本编辑器官方插件editor为微信小程序前端和图片接收后端,基于微信官方演示程序,去掉了多余的东西,加了一个后端接收图片的代码,直接可以使用,其他语言参照接收程序很简单。直接可以用。
  • 最近项目需要用到百度编辑器UEditor,之前使用Ueditor的时候还是刚工作的时候,那个时候jsp页面不懂里面过程,最近项目使用前后端分离使用UEditor记录下学习的过程,这里只是后端的代码 先自行下载官网的源码,找到...

    最近项目需要用到百度编辑器UEditor,之前使用Ueditor的时候还是刚工作的时候,那个时候jsp页面不懂里面过程,最近项目使用前后端分离使用UEditor记录下学习的过程,这里只是后端的代码

    先自行下载官网的源码,找到里面jsp文件,里面的 < config.json > 这个保存好这个是需要给前端初始化用,前端调用接口读取这个文件里面的配置来初始化编辑器

     

     我们首先需要创建一个统一接口 来执行初始化编辑器和上传图片的功能

    /**
     * @author HeWei
     * 百度编辑器
     */
    @RestController
    @RequestMapping("/ueditor")
    public class UeditorController {
    
        Logger logger = Logger.getLogger("ueditorController");
    
        @RequestMapping(value = "/config")
        public void config(HttpServletRequest request, HttpServletResponse response) {
            // 设置返回类型
            response.setContentType("application/json");
            String rootPath = request.getSession().getServletContext().getRealPath("/");
            try {
                String exec = new ActionEnter(request, rootPath).exec();
                PrintWriter writer = response.getWriter();
                writer.write(exec);
                writer.flush();
                writer.close();
            } catch (IOException e) {
                logger.info("百度编辑config异常");
            }
        }
    }

    在调用步骤是 在执行到

    new ActionEnter(request, rootPath).exec(); 的时候进入 ActionEnter类的构造方法中
    
    	public ActionEnter ( HttpServletRequest request, String rootPath) {
    		
    		this.request = request;
    		this.rootPath = rootPath;
    		this.actionType = request.getParameter( "action" );
    		this.contextPath = request.getContextPath();
    		this.configManager = ConfigManager.getInstance( this.rootPath, this.contextPath, request.getRequestURI() );
    
    		
    	}

    运行getInstance 进入 ConfigManager类的工厂构造器方法

        /**
         * 配置管理器构造工厂
         *
         * @param rootPath    服务器根路径
         * @param contextPath 服务器所在项目路径
         * @param uri         当前访问的uri
         * @return 配置管理器实例或者null
         */
        public static ConfigManager getInstance(String rootPath, String contextPath, String uri) {
    
            try {
                ConfigManager configManager = new ConfigManager(rootPath, contextPath, uri);
                return configManager;
            } catch (Exception e) {
                return null;
            }
    
        }
        /*
         * 通过一个给定的路径构建一个配置管理器, 该管理器要求地址路径所在目录下必须存在config.properties文件
         */
        private ConfigManager(String rootPath, String contextPath, String uri) throws FileNotFoundException, IOException {
    
            rootPath = rootPath.replace("/", "/");
    
            this.rootPath = rootPath;
            this.contextPath = contextPath;
    
            if (contextPath.length() > 0) {
                this.originalPath = this.rootPath + uri.substring(contextPath.length());
            } else {
                this.originalPath = this.rootPath + uri;
            }
    
            this.initEnv();
    
        }

    这个对象我们只要看 initEnv()方法 这个方法主要是获得config.json的配置信息转换的json对象数据

        private void initEnv() throws FileNotFoundException, IOException {
    
            File file = new File(this.originalPath);
    
            if (!file.isAbsolute()) {
                file = new File(file.getAbsolutePath());
            }
    
            this.parentPath = file.getParent();
    
            // 获取读取到的属性 在转换成json发给前端完成初始化
            String configContent = this.readFile(CONFIG_PATH);
    
            try {
                JSONObject jsonConfig = JSON.parseObject(configContent);
                this.jsonConfig = jsonConfig;
            } catch (Exception e) {
                this.jsonConfig = null;
            }
    
        }
    
    
         // 这里主要就是读取config.json文件里面的属性 转换成字符串
        private String readFile(String path) throws IOException {
    
            StringBuilder builder = new StringBuilder();
            try {
                BufferedReader bfReader;
                // 判断 读取 springboot中resource文件  add by huwei@20190203
                if (StringUtils.isEmpty(path)) {
                    InputStream inputStream = this.getClass().getResourceAsStream("/config.json");
                    InputStreamReader reader = new InputStreamReader(inputStream);
                    bfReader = new BufferedReader(reader);
                } else {
                    // 读取配置的文件
                    InputStreamReader reader = new InputStreamReader(new FileInputStream(path), "UTF-8");
                    bfReader = new BufferedReader(reader);
                }
                String tmpContent = null;
    
                while ((tmpContent = bfReader.readLine()) != null) {
                    builder.append(tmpContent);
                }
    
                bfReader.close();
    
            } catch (UnsupportedEncodingException e) {
                // 忽略
            }
    
            return this.filter(builder.toString());
    
        }

    执行完以上步骤就完成编辑器的初始化了

    编辑器图片上传:

        百度编辑器的默认的图片是存储的本地。所有我们需要修改源码里面的图片上传代码

     在ActionEnter类中的 invoke()方法是根据类型执行响应操作   图片上传,视频上传,上传文件 都是一个方法

    	case ActionMap.UPLOAD_IMAGE:
    			case ActionMap.UPLOAD_SCRAWL:
    			case ActionMap.UPLOAD_VIDEO:
    			case ActionMap.UPLOAD_FILE:
    				conf = this.configManager.getConfig( actionCode );
    				state = new Uploader( request, conf ).doExec();
    				break;

    最终上传的对象是BinaryUploader类中的save方法

    // 将这段自定的上传图片代码  改成 自己项目实现的图片上传
    			savePath = PathFormat.parse(savePath, originFileName);
    
    			String physicalPath = (String) conf.get("rootPath") + savePath;
    
    			InputStream is = fileStream.openStream();
    			State storageState = StorageManager.saveFileByInputStream(is,
    					physicalPath, maxSize);
    			is.close();
        if (storageState.isSuccess()) {
                    storageState.putInfo("url",uploadFile.getUrl() );  //返回给前端的图片路径
                    storageState.putInfo("type", suffix);
                    storageState.putInfo("original", originFileName + suffix);
                }

    使用自己的图片上传将返回的图片保存信息  在返回给前端就可以了 。

    这样就完成前后端分离Ueditor了。

    展开全文
  • 人会随之成长,知识会随之积累和更新,使用的编辑器也会随之更新 1、百度UEditor 编辑器(丰富而多样) 参考:百度UEditor富文本地图控件不支持https的问题解决 修改上传图片、文件的存放路径,找到baidueditor/...

    人会随之成长,知识会随之积累和更新,使用的编辑器也会随之更新

    1、百度UEditor 编辑器(丰富而多样)  参考:百度UEditor富文本地图控件不支持https的问题解决

    修改上传图片、文件的存放路径,找到 baidueditor/php/config.json 的 config.json 文件,用 Notepad++ 编辑器修改(本人用PHPstorm 修改出现 bug 了,最后删了,再从原来的 config.json 文件复制一份

    //保存图片的路径
    "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
    //这个是回显在线图片的
    "imageManagerListPath": "/ueditor/php/upload/image/", /* 指定要列出图片的目录 */

    2、layui 编辑器(小巧,简约风格)

    3、Editor.md 编辑器(Markdown)  参考:Editor.md 的Markdown 编辑器集成与使用(全)

    后面三个水平排列是自定义添加的

    4、Tiny 编辑器   

    后端图片上传的接口方法:(百度内置有的)

     // 图片文件夹
    protected function dirFile($dir){
       $dirName = "./".$dir."/".date('Ym');
       if(!file_exists($dirName)){
          mkdir($dirName,0777,true);
       }
       return $dirName;
    }
    
    //layui 图片上传接口
    public function layUpload(){
       if(request()->isPost()) {
           $files = Request::instance()-> file("file");
           if (empty($files)) {
               $result["code"] = 1;
               $result["msg"] = "请选择图片";
               $result['data']["src"] = '';
           } else {
               $info = $files->rule('uniqid')->move($this->dirFile("lay"));
               if ($info) {
                   $path = str_replace('\\',"/",$info->getSaveName());
                   //成功上传后 获取上传信息 lay:0表示成功,其他失败
                   $result["code"] = 0;
                   $result["msg"] = "上传成功";
                   $result['data']["src"] = '/lay/'.date('Ym')."/".$path;
               } else {
                   // 上传失败获取错误信息
                   $result["code"] = 2;
                   $result["msg"] = "上传出错";
                   $result['data']["src"] = '';
               }
           }
           return json($result);
       }
       return false;
    }
    
    //md 图片上传
    public function mdUpload(){
       //接收字段为什么是editormd-image-file???
       $file = $this->request->file('editormd-image-file');
       // var_dump($file);die;
       // 移动到框架应用根目录/uploads/ 目录下
       $info = $file->rule('uniqid')->move($this->dirFile("md"));
       if($info){
           // 成功上传后 获取上传信息
           $res = str_replace('\\',"/",$info->getSaveName());
           //返回值文档上面规定的格式是
           return json(['success' => 1,'message' => '上传成功!',"url"=>'/md/'.date('Ym').'/'.$res]);
       }else{
           // 上传失败获取错误信息
           $res = $file->getError();
           return $this->error($res);
       }
    }
    
    //tiny 图片上传
    public function tinyUpload(){
       if(request()->isPost()) {
           $files = Request::instance()-> file("file");
           if (empty($files)) {
               return false;
           } else {
               $info = $files->rule('uniqid')->move($this->dirFile("tiny"));
               if ($info) {
                   $path = str_replace('\\',"/",$info->getSaveName());
                   //成功上传后 获取上传信息 lay:0表示成功,其他失败
                   return json(["location"=>'/tiny/'.date('Ym').'/'.$path]);
               } else {
                   return false;
               }
           }
           return json($result);
       }
        return false;
    }
    

    总结

    占比大小:百度(18M左右)) > md(删减后4M左右) > tiny(2M左右) > layui(1.2M左右)

    Markdown 编辑器:md

    富文本 编辑器:百度、tiny、layui

    上述的编辑器除了 tiny 没用过,其他三个都用过,现在用的是 md 编辑器

    展开全文
  • 百度文本编辑器UEditor,后端配置

    千次阅读 2015-07-15 23:22:44
    初次使用,权当笔记,记录下来哈查看文档说明: http://fex.baidu.com/ueditor/#server-jsp 手动部署 tomcat浏览内网地址,成功后出现: ...这时只需要修改ueditor– jsp–config.json文件里 “imageUrlPre
  • 效果图kindeditor包下类UploadAccessory.java/* */ package com.scrh.web.com.elkan.kindeditor;/* */ /* */ import java.io.File;/* */ import java.io.IOException;/* */ import java.io.PrintStrea...
  • 1.下载百度编辑器(我用的是utf8-php版) 地址:http://ueditor.baidu.com/website/download.html 2.将文件解压放到static文件中,并修改ueditor.config.js文件 var URL = '/static/utf8-php/' || ...
  • 识别不出来后端返回的富文本编辑器里面的class类名 <p><strong>html代码</strong><br /> 请附上出现问题的html代码(或附件),例如: <pre><code> testClass1:"<span class=&#...
  • <p>I hope that someone can help me. How do i remove the long Woocommerce text editor tab in Woocommerce backend? I only use the short description text editor.It's annoying that you see always the ...
  • springboot+vue集成百度富文本编辑器ueditor+后端上传图片配置 先来一张效果图 开始 1、下载UEditor官网最新的jsp版本的包,下载完成解压之后得到一个utf8-jsp的文件夹,里面包含的内容如下: 下载地址:...
  • 富文本编辑器不同于文本编辑器,程序员可到网上下载免费的富文本编辑器内嵌于自己的网站或程序里(当然付费的功能会更强大些),方便用户编辑文章或信息。 安装依赖包 pip install django-tinymce==2.6.0 ...
  • 公司运营端需要增加一个富文本编辑器的模块,使用的是百度的ueditor,借鉴的是csdn一位大佬郑昊川先生的教程vue+ueditor,万分感谢。这个教程已经非常详细的讲述了vue结合ueditor的使用,方便参考。 此篇着重讲述富...
  • 注意,这里的图片上传配置,仅能保证图片管理的上传下载正常,而单张照片上传,后端显示成功,也接收到文件了,可是前端会报错,笔者没有找到解决方案,所以注释掉了单张照片上传的功能,以后有时间再研究。1.后端...
  • 今天给大家推荐一款超棒的H5可视化网页制作编辑工具H5DS。h5ds 基于HTML5构建的web网页可视化制作。通过轻松拖拽元素即可快速生成精美的H5页面。技术栈前端:React+Mobx+Less+jQuery后端:NodeJs+Ngnix+Mysql工具...
  • 项目使用百度编辑器,上传图片的时候出现后端未配置好,不能正常加载插件: 主要原因就是百度编辑器下面需要的几个jar并没有引用到项目的lib文件夹下 红框的这几个插件都需要加入到lib文件夹下,我的是maven项目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,042
精华内容 816
关键字:

后端编辑器