java ckeditor 上传图片_ckeditor 实现图片上传以及预览(亲测有效)

本文档详细介绍了如何配置和使用ckeditor进行图片上传,包括修改image.js和config.js文件以隐藏某些选项,设置上传图片地址,以及编写上传代码。同时,提供了基于Spring的上传实现,但建议避免使用Spring的上传方式,以防止可能出现的问题。
摘要由CSDN通过智能技术生成

引用ckeditor

CKEDITOR.replace("cktest");

3cbf16fbeb9b0a7d230e342428feecb4.png

删除imag.js中的文本

d2a40a39504a95df85d53445a288663a.png

将image.js中的hidden属性值改为0(总之为false 就ok 了)

1aac80360c90f354c52312d2bd45744c.png

修改config.js属性

CKEDITOR.editorConfig = function(config) {

// Define changes to default configuration here. For example:

// config.language = 'fr';

// config.uiColor = '#AADC6E';

config.image_previewText = '';

config.removeDialogTabs = 'image:advanced;image:Link';//隐藏超链接与高级选项

config.filebrowserImageUploadUrl = "http://localhost:8888/moon-web/hello/upload";//上传图片的地址

};

编写上传的代码(切记:不要用spring的上传方式{用spring的配置方式会出现各种各样的问题})

@RequestMapping(value="/upload")

public void fileUpload(HttpServletRequest request, HttpServletResponse response) {

String DirectoryName = "uploads";

try {

ImageUploadUtil.ckeditor(request, response, DirectoryName);

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

package com.sun.test.aircraft.ckImg;

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.File;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

/**

* @Author:sun

* @version:

* @Description:

* @Date:Created in 10:34 2017/12/1

*/

public class ImageUploadUtil {

// 图片类型

private static List fileTypes = new ArrayList();

static {

fileTypes.add(".jpg");

fileTypes.add(".jpeg");

fileTypes.add(".bmp");

fileTypes.add(".gif");

fileTypes.add(".png");

}

/**

* 图片上传

*

*/

public static String upload(HttpServletRequest request, String DirectoryName) throws IllegalStateException,

IOException {

// 创建一个通用的多部分解析器

CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession()

.getServletContext());

// 图片名称

String fileName = null;

// 判断 request 是否有文件上传,即多部分请求

if (multipartResolver.isMultipart(request)) {

// 转换成多部分request

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;

// 取得request中的所有文件名

Iterator iter = multiRequest.getFileNames();

while (iter.hasNext()) {

// 记录上传过程起始时的时间,用来计算上传时间

// int pre = (int) System.currentTimeMillis();

// 取得上传文件

MultipartFile file = multiRequest.getFile(iter.next());

if (file != null) {

// 取得当前上传文件的文件名称

String myFileName = file.getOriginalFilename();

// 如果名称不为“”,说明该文件存在,否则说明该文件不存在

if (myFileName.trim() != "") {

// 获得图片的原始名称

String originalFilename = file.getOriginalFilename();

// 获得图片后缀名称,如果后缀不为图片格式,则不上传

String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();

if (!fileTypes.contains(suffix)) {

continue;

}

// 获得上传路径的绝对路径地址(/upload)-->

String realPath = request.getSession().getServletContext().getRealPath("/" + DirectoryName);

System.out.println(realPath);

// 如果路径不存在,则创建该路径

File realPathDirectory = new File(realPath);

if (realPathDirectory == null || !realPathDirectory.exists()) {

realPathDirectory.mkdirs();

}

// 重命名上传后的文件名 111112323.jpg

fileName = Math.random() + suffix;

// 定义上传路径 .../upload/111112323.jpg

File uploadFile = new File(realPathDirectory + "\\" + fileName);

System.out.println(uploadFile);

file.transferTo(uploadFile);

}

}

// 记录上传该文件后的时间

// int finaltime = (int) System.currentTimeMillis();

// System.out.println(finaltime - pre);

}

}

return fileName;

}

/**

* ckeditor文件上传功能,回调,传回图片路径,实现预览效果。

*

* @Title ckeditor

* @param request

* @param response

* @param DirectoryName

* 文件上传目录:比如upload(无需带前面的/) upload/..

* @throws IOException

*/

public static void ckeditor(HttpServletRequest request, HttpServletResponse response, String DirectoryName)

throws IOException {

String fileName = upload(request, DirectoryName);

// 结合ckeditor功能

// imageContextPath为图片在服务器地址,如upload/123.jpg,非绝对路径

String imageContextPath = request.getContextPath() + "/" + DirectoryName + "/" + fileName;

response.setContentType("text/html;charset=UTF-8");

String callback = request.getParameter("CKEditorFuncNum");

PrintWriter out = response.getWriter();

out.println("

out.println("window.parent.CKEDITOR.tools.callFunction(" + callback + ",'" + imageContextPath + "',''" + ")");

out.println("");

out.flush();

out.close();

}

}

2c8716b4f66644801f1a4ed2081ab529.png

00776051356cdc734d107db4b4f1a05a.png

78b9b19fda2aeaaa28146e7f81a037cf.png

ac73d0dba402b2d17a3428d1266f2431.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值