ueditor 图片外部存储和回显

一、先导入Ueditor解压后的文件,导入的文件名最好就ueditor,否则有些东西它默认配置是Ueditor下面找,很容易形成有些东西用不了。固然有些东西用不到我没有没去筛选。nginx

本人用的是1.4.3版本web

2.maven项目须要将jar包引入,ueditor自己下载下来也有所依赖的jar ,在jsp/lib/下边json

关于ueditor的jar ,能够用如下2个,我的比较推荐用下边的,上边的有部分电脑可能会出现下载不下来的状况。app

三、配置js,jsp

 网上看了不少要改config.json 里面的imageUrlPrefix 地址和imagePathFormat地址 ,本人没有进行改动maven

在 ueditor.config.js 当中将  var URL = window.UEDITOR_HOME_URL || "/项目名/ueditor/"; 作了些许改动。也对一些用不到的toolbers 图标给删除了 ,别的基本没作改动工具

4.界面逻辑和后台处理this

图片的文件的上传都会走这个方法,serviceImpl的代码以下 : 这个代码忘了是从那位大神那边借鉴的了 ,稍微改了一些东西,大致的思路仍是没作改变url

public Map<String, Object> fileupload(HttpServletRequest req) {
Map<String,Object> result = new HashMap<String, Object>();
MultipartHttpServletRequest mReq = null;
MultipartFile file = null;
InputStream is = null ;
String fileName = "";
// 原始文件名 UEDITOR建立页面元素时的alt和title属性
String originalFileName = "";
String filePath = "";
try {
mReq = (MultipartHttpServletRequest)req;
// 从config.json中取得上传文件的ID
file = mReq.getFile("upfile");
// 取得文件的原始文件名称
fileName = file.getOriginalFilename();
originalFileName = fileName;
if(!StringUtils.isEmpty(fileName)){
is = file.getInputStream();
fileName = FileUtils.reName(fileName);
filePath = FileUtils.saveFile(fileName, is, this.filePathConfig.getImagesPath());//imagePaht 就是文件的存储路径
} else {
throw new IOException("文件名为空!");
}
result.put("state", "SUCCESS");// UEDITOR的规则:不为SUCCESS则显示state的内容
result.put("url",httpPath + filePath);//httpPath=http://IP:端口/映射名/
result.put("title", originalFileName);
result.put("original", originalFileName);
}
catch (Exception e) {
//System.out.println(e.getMessage());
result.put("state", "文件上传失败!");
result.put("url","");
result.put("title", "");
result.put("original", "");
// System.out.println("文件 "+fileName+" 上传失败!");
}

return result;
}orm

this.filePathConfig.getImagesPath() 关于imagesPath的存储路径就是/webApp/sentiment/的路径

由于项目当中配置了nginx的动静分离,因此我在nginx的配置文件里面也配置了一个映射关系,将访问地址中含/Image/xxx 的方法映射到我本地E:/webApp/sentiment/问见夹下

上文当中fileUtils当中的方法

/**
* 给文件重命名 防止覆盖
* @param fileName
* @return 时间戳+原始文件的后缀
*/
public static String reName(String fileName){
return new StringBuffer().append(new Date().getTime()).append(fileName.substring(fileName.indexOf("."))).toString();
}

/**
* 文件保存
* @param fileName 
* @param content
* @param filePath 文件保存路径
* @return
* @throws IOException
*/
public static String saveFile(String fileName,InputStream content,String filePath) throws IOException {
FileOutputStream fos = null;
StringBuffer contentPath = new StringBuffer("");; // 上下文地址
try {
contentPath.append("/");
contentPath.append(fileName); //

File pictureFile = new File(filePath + contentPath.toString());
File pf = pictureFile.getParentFile();
if(!pf.exists()){
pf.mkdirs();
}
pictureFile.createNewFile(); // 建立文件
fos = new FileOutputStream(pictureFile);
FileUtils.copy(content, fos);
} catch (Exception e) {
throw new IOException("文件保存失败!");
} finally {
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
throw new IOException("文件保存失败!");
}
}
}
return contentPath.toString();
}


/**
* 文件copy方法
* @param src
* @param dest
*/
public static void copy(InputStream src, OutputStream dest) {
try {
byte[] tmp = new byte[1024];
int len = -1;
while ((len = src.read(tmp)) != -1)
dest.write(tmp, 0, len);
} catch (IOException e) {
throw new RuntimeException(e);
}
}

 固然必不可少的是对数据的保存入库,那个就很简单了,就不在这详述了。

最后,若是哪位大牛对ueditor自带的截图工具备研究的话,能够告诉我那个东西怎么用,我研究了很久,电脑安装上也用不了,只能把那个功能屏蔽了。

或者哪位对重写那个截图方法有研究的话也能够告诉小弟,本人将不胜感激。

但愿本人写的东西能对和我同样初次接触ueditor的人有所帮助。

相关文章
相关标签/搜索