在JSP中使用ckeditor以及使用SpringMVC实现图片上传

最近在做个人博客,对于这个项目而言,文本编辑器的选择相对的比较重要,在百度UEditor、MarkDown等之中最终还是选择了 CKEDITOR,对于CKeditor的介绍自不必多说,

网上对于如何配置的文章虽然很多,但大多是千篇一律或是不完整,错误百出,对于ckeditor编辑器的前台配置可以按照官网上一步一步来,这里主要想总结一下上传图片该如何操作。

一、我用的是4.47版本

CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮

第一步:打开ckeditor/plugins/image/dialogs/image.js文件,搜索hidden,将所有出现id:"Upload",hidden:!0的!去掉或者改为false

这一步完成之后将会看到上传按钮

第二步:完成上传图片的Controller:

/*
	 *  图片命名格式
	 */
	private static final String DEFAULT_SUB_FOLDER_FORMAT_AUTO = "yyyyMMddHHmmss";

	@Resource(name="adminServiceImpl")
	private AdminService adminService;	

	protected Logger logger = Logger.getLogger(AdminController.class);
	/*
	 * 项目绝对路径
	 */
	private static  final String PROJECT_PATH="C:/Users/Administrator/workspace/PersonalBlog/";
	/*
	 * 上传图片文件夹
	 */
	private static final String UPLOAD_PATH="WebContent/upload/img/";
	/*
	 *  上传图片
	 */
	@RequestMapping("uploadImg")
	public void uplodaImg(@RequestParam("upload")MultipartFile file,//
			HttpServletRequest request, //
			HttpServletResponse response,//
			@RequestParam("CKEditorFuncNum")String CKEditorFuncNum)//
			throws IllegalStateException, IOException{

		PrintWriter out =response.getWriter();
		String fileName=file.getOriginalFilename();
		String uploadContentType =file.getContentType();
		String expandedName ="";
		if (uploadContentType.equals("image/pjpeg")
                || uploadContentType.equals("image/jpeg")) {
            // IE6上传jpg图片的headimageContentType是image/pjpeg,而IE9以及火狐上传的jpg图片是image/jpeg
            expandedName = ".jpg";
        } else if (uploadContentType.equals("image/png")
                || uploadContentType.equals("image/x-png")) {
            // IE6上传的png图片的headimageContentType是"image/x-png"
            expandedName = ".png";
        } else if (uploadContentType.equals("image/gif")) {
            expandedName = ".gif";
        } else if (uploadContentType.equals("image/bmp")) {
            expandedName = ".bmp";
        } else {
            out.println("<script type=\"text/javascript\">");
            out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
                    + ",''," + "'文件格式不正确(必须为.jpg/.gif/.bmp/.png文件)');");
            out.println("</script>");
            return ;
        }
		if (file.getSize()> 600 * 1024) {
            out.println("<script type=\"text/javascript\">");
            out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
                    + ",''," + "'文件大小不得大于600k');");
            out.println("</script>");
            return ;
		}
		DateFormat df = new SimpleDateFormat(DEFAULT_SUB_FOLDER_FORMAT_AUTO);
		fileName = df.format(new Date())+expandedName;
		file.transferTo(new File(PROJECT_PATH+UPLOAD_PATH +fileName));
        // 返回"图像"选项卡并显示图片  request.getContextPath()为web项目名
        out.println("<script type=\"text/javascript\">");
        out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
                + ",'" + "upload/img/" + fileName + "','')");
        out.println("</script>");
        return ;
	}
	

第三步:配置点击” 上传到服务器“ 按钮之后请求的控制器,在ckeditor/config.js中加入这一段代码

config.image_previewText=‘ ‘; //预览区域显示内容

config.filebrowserImageUploadUrl= "uploadImg.html"; //要上传的action或servlet

注意:如果上传图片之后看不到图片,如图

方法一:请刷新图片的上传文件夹,因为图片是上传到绝对路径,Eclipse需要同步才能知道这一行为,

项目上线后一般不会出现这一行为

方法二:Automatically Refresh打勾,让Eclipse自动同步文件系统

时间: 2024-10-11 11:42:23

在JSP中使用ckeditor以及使用SpringMVC实现图片上传的相关文章

CKEditor不借助CKFinder实现图片上传(.net版 ashx实现)

参考博客:http://blog.csdn.net/mydwr/article/details/8669594 本人版本:4.4.6 打开文件:ckeditor/plugins/image/dialogs/image.js 搜索内容:[c.config.image_previewText],并删掉其后引号内的内容. 删除后格式:[c.config.image_previewText||""]. 与原文差异:原内容原文中是[b.config.image_previewText],我这里是

Drupal 7 配置ckeditor和ckfinder编辑器实现图片上传--不用wysisyg

注意: 1.这里的ckeditor编辑器是独立模块,不是那个wysiwyg模块. 2.这里的图片上传仅仅为文章内图片,非字段图片. 1.下载文件(1) http://drupal.org/project/ckeditor drupal的ckeditor模块(2) http://ckeditor.com/download CKeditor源码(3) http://ckfinder.com/download CKfinder(注意,不是免费的) 将ckedit文件夹放置在/sites/all/mod

springmvc之图片上传

1.接收到的是图片的流时 //上传头像 @RequestMapping(value = "/uploadHeadSculpture", method = RequestMethod.POST) @ResponseBody public String uploadHeadSculpture(@RequestParam("photo") String file) { User user = (User) SecurityUtils.getSubject().getSes

springmvc图片上传、json

springmvc的图片上传 1.导入相应的pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> 2.添加springmvc-servlet.xml里面的配置 <bean id=&q

Android简单实现将手机图片上传到server中

在本例中.将会简单的实现安卓手机将图片上传到server中.本例使用到了 server端:PHP+APACHE 客户端:JAVA 先简单实现一下server端的上传并測试上传效果,看实例 <?php if(empty($_GET['submit'])){?> <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']? >?submit=1" method

JSP+Servlet中使用jspsmartupload.jar进行图片上传下载

JSP+Servlet中使用cos.jar进行图片上传 upload.jsp <form action="FileServlet" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"> <input type="text" name="cmt&q

SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

搞清楚路径位置 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可以只剩下en.js,zh.js,zh-cn.js 图片上传时图像信息中的预览会显示一堆英文信息,会干扰预览.找到ckeditor/plugins/image/dialogs/image.js,搜索"d.config.image_previewText"就能找到这段鸟语了,(d.config.image_previewText||")引号中

百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源

个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配置Nginx代理.     在实际使用过程中,遇到了太多的问题,因此有必要梳理和总结下. 1. 先说百度UEditor在Java环境中的使用:1.1   Html页面或者Freemarker模版里,引入百度UEditor的相关JS和CSS,如下 <script type="text/javas

项目整合ckeditor实现图片上传到远程服务器

最近手头上的一个Java项目需要做一个门户网站,其中有一个模块就是用来发布最新的业界安全动态的模块,因此需要用到后台发布新闻的功能:刚开始的时候在网上搜了一下,大部分都是关于PHP和.NET的,关于Java不多,而且查到的都是说用ckeditor+ckfinder来实现,ckeditor实现文本的编辑,ckfinder实现图片的上传,刚开始我也是准备用ckeditor+ckfinder来实现的,但是后来研究ckfinder的时候不知道如何配置ckfinder的图片上传路径问题,网上可以找到好多例