第一部:修改jsp/config.json文件
访问前缀:#basePath#
pathFormat:uploads前面添加“/”斜杠
/* 前后端通信相关的配置,注释只允许使用多行方式 */ { /* 上传图片配置项 */ "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ "imageFieldName": "upfile", /* 提交的图片表单名称 */ "imageMaxSize": 2048000, /* 上传大小限制,单位B */ "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ "imageCompressEnable": true, /* 是否压缩图片,默认是true */ "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ "imageInsertAlign": "none", /* 插入的图片浮动方式 */ "imageUrlPrefix": "#basePath#", /* 图片访问路径前缀 */ "imagePathFormat": "/uploads/ue/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": "/uploads/ue/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ "scrawlUrlPrefix": "#basePath#", /* 图片访问路径前缀 */ "scrawlInsertAlign": "none", /* 截图工具上传 */ "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ "snapscreenPathFormat": "/uploads/ue/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "snapscreenUrlPrefix": "#basePath#", /* 图片访问路径前缀 */ "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ /* 抓取远程图片配置 */ "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ "catcherFieldName": "source", /* 提交的图片列表表单名称 */ "catcherPathFormat": "/uploads/ue/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "catcherUrlPrefix": "#basePath#", /* 图片访问路径前缀 */ "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ /* 上传视频配置 */ "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ "videoFieldName": "upfile", /* 提交的视频表单名称 */ "videoPathFormat": "/uploads/ue/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "videoUrlPrefix": "#basePath#", /* 视频访问路径前缀 */ "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": "/uploads/ue/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ "fileUrlPrefix":"#basePath#", /* 文件访问路径前缀 */ "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": "/uploads/ue/image/", /* 指定要列出图片的目录 */ "imageManagerListSize": 20, /* 每次列出文件数量 */ "imageManagerUrlPrefix": "#basePath#", /* 图片访问路径前缀 */ "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */ /* 列出指定目录下的文件 */ "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ "fileManagerListPath": "/uploads/ue/file/", /* 指定要列出文件的目录 */ "fileManagerUrlPrefix": "#basePath#", /* 文件访问路径前缀 */ "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" ] /* 列出的文件类型 */ }
第二部:添加路径配置
##ueditor编辑器 ueditor.url.base=http://localhost:8080/app
第三部:替换原来的jar
ueditor-1.1.1.jar替换ueditor-custom-1.1.1.jar
源码修改:
package com.baidu.ueditor;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
import org.json.JSONArray;
import org.json.JSONObject;
public final class ConfigManager
{
private final String rootPath;
private final String originalPath;
private final String contextPath;
private static final String configFileName = "config.json";
private String parentPath = null;
private JSONObject jsonConfig = null;
private static final String SCRAWL_FILE_NAME = "scrawl";
private static final String REMOTE_FILE_NAME = "remote";
private static final String BASE_PATH = UeditorPropertyGetUtil.getResource("config").getString("ueditor.url.base");
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);
}
initEnv();
}
public static ConfigManager getInstance(String rootPath, String contextPath, String uri)
{
try
{
return new ConfigManager(rootPath, contextPath, uri); } catch (Exception localException) {
}
return null;
}
public boolean valid()
{
return this.jsonConfig != null;
}
public JSONObject getAllConfig()
{
return this.jsonConfig;
}
public Map<String, Object> getConfig(int type)
{
Map conf = new HashMap();
String savePath = null;
switch (type)
{
case 4:
conf.put("isBase64", "false");
conf.put("maxSize", Long.valueOf(this.jsonConfig.getLong("fileMaxSize")));
conf.put("allowFiles", getArray("fileAllowFiles"));
conf.put("fieldName", this.jsonConfig.getString("fileFieldName"));
savePath = this.jsonConfig.getString("filePathFormat");
break;
case 1:
conf.put("isBase64", "false");
conf.put("maxSize", Long.valueOf(this.jsonConfig.getLong("imageMaxSize")));
conf.put("allowFiles", getArray("imageAllowFiles"));
conf.put("fieldName", this.jsonConfig.getString("imageFieldName"));
savePath = this.jsonConfig.getString("imagePathFormat");
break;
case 3:
conf.put("maxSize", Long.valueOf(this.jsonConfig.getLong("videoMaxSize")));
conf.put("allowFiles", getArray("videoAllowFiles"));
conf.put("fieldName", this.jsonConfig.getString("videoFieldName"));
savePath = this.jsonConfig.getString("videoPathFormat");
break;
case 2:
conf.put("filename", "scrawl");
conf.put("maxSize", Long.valueOf(this.jsonConfig.getLong("scrawlMaxSize")));
conf.put("fieldName", this.jsonConfig.getString("scrawlFieldName"));
conf.put("isBase64", "true");
savePath = this.jsonConfig.getString("scrawlPathFormat");
break;
case 5:
conf.put("filename", "remote");
conf.put("filter", getArray("catcherLocalDomain"));
conf.put("maxSize", Long.valueOf(this.jsonConfig.getLong("catcherMaxSize")));
conf.put("allowFiles", getArray("catcherAllowFiles"));
conf.put("fieldName", this.jsonConfig.getString("catcherFieldName") + "[]");
savePath = this.jsonConfig.getString("catcherPathFormat");
break;
case 7:
conf.put("allowFiles", getArray("imageManagerAllowFiles"));
conf.put("dir", this.jsonConfig.getString("imageManagerListPath"));
conf.put("count", Integer.valueOf(this.jsonConfig.getInt("imageManagerListSize")));
break;
case 6:
conf.put("allowFiles", getArray("fileManagerAllowFiles"));
conf.put("dir", this.jsonConfig.getString("fileManagerListPath"));
conf.put("count", Integer.valueOf(this.jsonConfig.getInt("fileManagerListSize")));
}
conf.put("savePath", savePath);
conf.put("rootPath", this.rootPath);
return conf;
}
private void initEnv()
throws FileNotFoundException, IOException
{
File file = new File(this.originalPath);
if (!file.isAbsolute()) {
file = new File(file.getAbsolutePath());
}
this.parentPath = file.getParent();
String configContent = readFile(getConfigPath());
try
{
JSONObject jsonConfig = new JSONObject(configContent);
if (jsonConfig != null) {
String jsonString = jsonConfig.toString();
jsonString = jsonString.replaceAll("\\#(.+?)\\#", BASE_PATH);
jsonConfig = new JSONObject(jsonString);
}
this.jsonConfig = jsonConfig;
} catch (Exception e) {
this.jsonConfig = null;
}
}
private String getConfigPath()
{
return this.parentPath + File.separator + "config.json";
}
private String[] getArray(String key)
{
JSONArray jsonArray = this.jsonConfig.getJSONArray(key);
String[] result = new String[jsonArray.length()];
int i = 0; for (int len = jsonArray.length(); i < len; i++) {
result[i] = jsonArray.getString(i);
}
return result;
}
private String readFile(String path)
throws IOException
{
StringBuilder builder = new StringBuilder();
try
{
InputStreamReader reader = new InputStreamReader(new FileInputStream(path), "UTF-8");
BufferedReader bfReader = new BufferedReader(reader);
String tmpContent = null;
while ((tmpContent = bfReader.readLine()) != null) {
builder.append(tmpContent);
}
bfReader.close();
}
catch (UnsupportedEncodingException localUnsupportedEncodingException)
{
}
return filter(builder.toString());
}
private String filter(String input)
{
return input.replaceAll("/\\*[\\s\\S]*?\\*/", "");
}
public static void main(String[] args)
{
String s = "{klsdfjkdsjf:sdffdsf#basePath#dfdsfd#sf}";
System.out.println(s.replaceAll("\\#(.+?)\\#", "http://localhost:a//"));
}
}
相关推荐
在UEditor编辑器中,音频独立上传功能是一项重要的增强,它允许用户直接在编辑器内上传音频文件,无需离开编辑页面,从而提高工作效率。这个特性尤其适用于那些需要在内容中嵌入音频的网站,如在线教育平台、博客...
UEditor 是由百度公司开发的一款开源的富文本编辑器,它提供了丰富的API和功能,使得用户在网页上可以方便地进行文本编辑、图片上传、视频插入等操作。作为一款强大的在线编辑工具,UEditor 广泛应用于博客、论坛、...
### Ueditor上传图片不显示问题解析与解决方法 ...通过上述步骤的操作,可以有效地解决Ueditor编辑器上传图片不显示的问题。同时,建议定期检查并更新编辑器版本,以避免因版本过旧而导致的各种兼容性和安全问题。
在使用百度UEditor这款强大的富文本编辑器时,有时我们需要将用户上传的图片保存到本地服务器,而不是默认的远程服务器。这个过程涉及到自定义图片上传的存储路径,以适应我们自己的项目需求。以下是对这个主题的...
在IT行业中,编辑器是开发人员日常工作中不可或缺的工具,其中百度的UEditor是一个非常流行的富文本编辑器,尤其在Web应用中广泛使用。UEditor提供了丰富的文本编辑功能,包括图片上传、视频插入等,极大地提高了...
虽然编辑器实例被隐藏,我们仍可以使用ueditor提供的API手动触发图片上传,例如调用`UE.Editor.prototype.execCommand('insertimage', imgUrls)`,其中`imgUrls`是图片URL的数组。 6. **安全性与权限控制**: 在...
.NET百度编辑器(UEditor)是一个功能强大且广泛使用的富文本编辑器,但是在上传图片和附件时,可能会遇到一些问题。以下是解决.NET百度编辑器(UEditor)上传图片跟上次附件不成功的方法。 一、上传图片配置文件 ...
imagePathFormat: "{year}/{month}/{day}/{random}{filename}", // 图片上传路径格式 // 其他配置项... }; }; ``` 这里,`imageUrlPrefix` 指定了图片访问的前缀,`imagePathFormat` 则定义了图片上传后存储的...
如果通过百度Ueditor直接将图片上传到服务器上,当你重新发布项目到服务器上,容易造成图片的丢失!为了防止该事件的发生,尽量将图片上传到磁盘上或者独立存图片的服务器上!通过修改百度Ueditor源码实现
**百度Ueditor编辑器简介** 百度Ueditor是一款由百度公司开发的开源富文本在线编辑器,主要用于网页内容的编辑和格式化。它提供了丰富的编辑功能,包括文本样式、图片上传、表格、链接、代码高亮等,使得用户无需...
【标题】"uEditor上传图片并保存为原文件名"涉及的是在ASP.NET环境中使用uEditor编辑器进行图片上传,并确保图片文件以上传时的原始文件名存储的过程。uEditor是一个流行的富文本编辑器,广泛应用于网站内容管理系统...
【描述】中提到的"基于springboot完整的实现了ueditor前后台的代码"意味着这个项目已经包含了ueditor编辑器的前端代码以及与之配合的SpringBoot后端处理代码。开发者无需从头开始编写处理图片上传逻辑,只需要将项目...
本文将详细讲解如何使用ueditor这款流行的富文本编辑器将图片上传到阿里云对象存储服务(OSS)。 ueditor是一款功能强大的在线富文本编辑器,它支持多种富文本编辑功能,包括图片、视频、表格等多媒体元素的插入。...
ueditor 是一款常用的富文本编辑器,它提供了丰富的功能,包括文本格式化、图片和文件上传等。配置ueditor涉及到的主要步骤如下: 1. **下载与放置**:首先需要从ueditor官网下载适用于项目的版本,比如这里的jsp...
【ueditor编辑器演示】 ueditor是一款功能强大的富文本在线编辑器,被广泛应用于网站内容编辑、论坛留言、博客文章等多个场景。它以其简洁的界面、丰富的编辑功能以及良好的用户体验,受到了开发者的青睐。本资源...
**Ueditor编辑器1.4.3.1 for WordPress 4.0插件详解** **一、Ueditor编辑器简介** Ueditor是一款由百度开发的开源富文本在线编辑器,它提供了丰富的API接口和强大的功能,如图片上传、视频插入、代码高亮等,为网站...
【标题】"ueditor jsp 图片上传demo"是一个基于Ueditor编辑器的Java Web应用程序示例,展示了如何在jsp页面上实现图片上传功能。Ueditor是一款强大的富文本编辑器,广泛应用于网页内容编辑,支持多种语言,包括...
在使用富文本编辑器ueditor与Struts2框架结合进行图片上传时,常常会遇到一些问题,这些问题可能涉及文件过滤、文件类型限制、文件大小控制、上传路径设置等多个方面。以下是一些解决这些问题的关键知识点: 1. **...
在wwwroot/lib/ueditor里面 页面你是可以随便改的必要的留着就行 web项目里资源文件中ueditor.config.js里面的统一的请求路径前面必须加上图片服务器的路经 以上面为例http://127.1.1.1:80/api/UEditor 记得添加...
总的来说,实现百度ueditor编辑器的Word导入功能涉及到对OOXML的理解,以及在ASP.NET环境中处理文件、解析XML、转换样式和处理图片等多个技术环节。通过这一功能,开发者可以提升网站内容编辑的用户体验,同时也需要...