`

ckeditor之java文件上传与文件浏览

    博客分类:
  • web
阅读更多
fckeditor升级到ckeditor已经有一段时间了,据了解ckeditor架构更合理,所以最近打算将原先fckeditor的编辑器换成ckeditor。
在使用中发现原本fckeditor支持的java图片上传和浏览的功能在ckeditor里并没有给出实现,而是由ckfinder组件所代替(目前支持 asp,asp.net,cfm,php),貌似歧视java,好在官方给出了接口文档  http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_%28Uploader%29 。

文件上传
通过文档我们了解到 只要我们可以实现一个用于接收上传文件请求的 servler(jsp,action)都可以,接收一个上传文件的请求,并返回文件处理的url位置及显示在编辑器中的位置的回调函数(window.opener.CKEDITOR.tools.callFunction( funcNum, fileUrl [, data] );)即可。
CKEDITOR.replace( 'editor_kama',
	{
		customConfig : 'custom/myCkConfig.js',
		skin : 'kama',
		//filebrowserUploadUrl : '/uploader/upload.php', 换成我们处理上传文件的url即可
		filebrowserImageUploadUrl : 'servlet/FileUpload'
	});

实际上ckeditor在提交上传文件请求的同事还会传递位置CKEditorFuncNum 语言langCode 的参数。
这里我们在servlet中主要用到CKEditorFuncNum
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");  
response.setHeader("Cache-Control", "no-cache");  
PrintWriter out = response.getWriter();
//判断提交的请求是否包含文件
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
//设置上传的保存路径
String uploadDir = getServletContext().getRealPath("/upload");
if (uploadDir == null)
{
	System.out.println("无法访问存储目录");
	return;
}
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists())
{
	if(!fUploadDir.mkdir())
	{
		System.out.println("无法创建存储目录!");
		return;
	}
}
Date date = new Date();
String dsr = dirFormat.format(date);
File dirfile = new File(fUploadDir,dsr);
if(!dirfile.exists()){
	if(!dirfile.mkdir()){
		System.out.println("无法创建存储路径");
		return;
	}
}

DiskFileItemFactory factory = new DiskFileItemFactory();
//设置内存中最大存储5M,超过则保存到临时文件夹下
factory.setSizeThreshold(1024*1024*5);
//设置临时文件夹地址
factory.setRepository(new File("/"));
ServletFileUpload upload = new ServletFileUpload(factory);
//设置最大上传的文件大小 3M
upload.setSizeMax(1024*1024*3);
String fileName = "";
for(int k =0;k<100;k++){
	if(k==50){
		continue;
	}
}
List <FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
while(iter.hasNext()){
	FileItem item = iter.next();
	if(item.isFormField()){
		System.out.println("不是上传的文件");
	}else{
		System.out.println(item.getName());
		//System.out.println(item.getString());
		String[] strs = item.getName().split("\\.");
		
		System.out.println(strs[strs.length-1]);
		fileName = filenameFormat.format(date)+"."+strs[strs.length-1];
		File nFile = new File(dirfile,fileName);
	    item.write(nFile);
	}
}
String fileUrl = "upload/"+dsr+"/"+fileName;
//CKEditorFuncNum就是在提交上传文件的同时传递到后台的request内容,表明应该插入到编辑器中的位置
String callback = request.getParameter("CKEditorFuncNum");  
out.println("<script type=\"text/javascript\">");  
out.println("window.parent.CKEDITOR.tools.callFunction(" + callback  
+ ",'" + fileUrl + "',''" + ")");  
out.println("</script>");
out.flush();  
out.close(); 

这里前部分就是采用fileupload处理上传文件,后部分就是给ckeditor的回调函数。               长春在线
实际上后台文件浏览的原理也一样,会在另一篇文章介绍给大家。
分享到:
评论

相关推荐

    ckeditor支持文件上传的java类

    下面我们将详细讨论CKEditor文件上传的Java实现以及相关的知识点。 1. **CKEditor的文件上传接口** CKEditor提供了`filebrowserUploadUrl`配置选项,用于指定文件上传的服务器端处理URL。这个URL应指向一个能够...

    ckeditor上传图片,上传文件

    这部分代码可能涉及到CKEditor的配置对象,如`config.filebrowserBrowseUrl`、`config.filebrowserImageBrowseUrl`等,这些配置指定了文件浏览和上传的URL,以及可能的上传参数设置。 在前端,CKEditor提供了一套...

    CKEditor 上传文件(Servlet实现)

    - "CKEditor上传文件Servlet版本1.0"这个压缩包可能包含了CKEditor的示例配置、Servlet的Java源代码、HTML页面和可能的web.xml配置文件。解压并根据这些文件进行部署和测试。 通过以上步骤,你可以成功地在...

    CKeditor的图片上传浏览服务端组件-Java版本

    Java版本的CKeditor图片上传浏览服务端组件则是针对Java开发者设计的,用于处理CKeditor中的图片上传请求,并且与之配合实现图片预览。 该组件的核心功能包括: 1. **图片上传**:当用户在CKeditor中选择插入图片...

    整合ckeditor+ckfinder实现图片或文件上传功能

    `ckeditor`是一款知名的开源JavaScript富文本编辑器,而`ckfinder`则是一个与之配合的文件管理器,主要用于上传、管理和选择编辑器中的图片和文件。本文将详细介绍如何在JAVA工程中整合这两款工具,实现图片和文件的...

    CKEditor实现本地视频和图片的上传功能

    首先,在CKEditor的配置中,我们需要定义一个`filebrowserBrowseUrl`,指向我们的文件浏览服务器端接口。例如: ```javascript CKEDITOR.replace('editor', { filebrowserBrowseUrl: '/api/upload', }); ``` 这里...

    ckeditor+ckeditor-java+ckfinder

    在Java环境中,CKFinder同样有对应的Java版本,可以与Java Web应用集成,处理文件上传、权限控制等需求。通过配置,开发者可以设置CKFinder与服务器的通信路径,确保文件安全存储。 【集成CKEditor+ckeditor-java+...

    Ckeditor + ckfinder整合for JAVA(支持文件上传)

    通过以上步骤,你就可以在Java Web项目中成功整合Ckeditor和ckFinder,提供一个支持文件上传的富文本编辑器。在实际开发中,你可能还需要根据项目需求进行一些定制化工作,例如调整编辑器样式、增加额外的插件等。...

    java与ckeditor和ckfinder整合后实现上传图片功能

    2. **配置CKFinder**:CKFinder需要与服务器端的Java应用进行交互,处理文件上传、下载等操作。这通常需要配置CKFinder的服务器端设置,如URL路径、文件存储位置等。对于Java环境,CKFinder提供了JavaBridge,一个...

    ckeditor与ckfinder整合forJAVA(支持文件上传、解决乱码问题)二

    ### CKEditor与CKFinder整合For Java(支持文件上传、解决乱码问题) #### 知识点一:CKEditor与CKFinder简介 - **CKEditor**:CKEditor是一款强大的开源富文本编辑器,广泛应用于Web应用程序中,允许用户直接在...

    Ckeditor 应用于 java web

    为了实现这个功能,开发者需要在后端设置一个接收文件上传的接口,处理文件上传请求,保存文件到服务器,并返回文件路径或URL给Ckeditor,以便编辑器能正确显示这些媒体内容。 **4. 去除服务器文件浏览功能** 出于...

    Ckeditor与ckfinder forJAVA

    CKFinder是一款与CKEditor配套的文件管理器,用于浏览、选择和上传文件到服务器。它支持多种文件类型,包括图片、文档、视频等,且具有权限控制功能,可以根据用户角色设定不同的访问和操作权限。 **CKEditor与...

    Ckeditor与ckfinder整合

    在本文中,我们将深入探讨如何将Ckeditor与ckfinder整合在Java环境下,实现文件上传功能。Ckeditor是一款强大的富文本编辑器,而ckfinder则是一个文件管理器,它们结合使用可以方便地在编辑器中插入、管理和上传各种...

    CKEDITOR 编辑器本地上传图片(好)

    例如,限制上传文件的类型和大小,防止恶意文件上传;对上传的图片进行缩放和优化,减少服务器存储空间和加载时间;以及使用CDN服务,提高图片加载速度。 总结,CKEDITOR编辑器的本地图片上传功能结合服务器端处理...

    最新ckeditor3.6+ckfinder2.1整合含上传文件命名改为日期型(java版)

    CKEditor是一款强大的富文本编辑器,而CKFinder则是一个文件管理器,两者结合可以提供完整的文本编辑与文件上传功能。 **CKEditor 3.6** CKEditor 3.6是CKEditor的一个旧版本,但它在当时提供了许多先进的特性。这...

    CKEditor3.x配置使用教程,支持图片上传其中图片上传支持Ftp

    在这个场景下,Servlet会接收来自CKEditor的图片上传请求,验证文件类型和大小,然后通过FTP协议将文件上传到服务器的特定目录。FTP(File Transfer Protocol)是一种标准网络协议,用于在计算机之间传输文件。配置...

    CKEditor 上传图片

    总的来说,"CKEditor 上传图片"是通过集成CKEditor和Struts2的文件上传功能,实现了在网页编辑器中便捷上传和显示图片的功能。理解并熟练掌握这一技术,对于开发交互性强、用户体验良好的Web应用具有重要意义。

    JSP使用ckeditor和ckfinder实现富文本及文件上传

    在这个场景中,"JSP使用ckeditor和ckfinder实现富文本及文件上传"是一个常见的需求,尤其是在构建内容管理系统或者论坛等需要用户编辑和上传内容的Web应用中。 ckeditor是一款流行的开源JavaScript富文本编辑器,它...

    CKEditor实现图片上传(使用Struts2).zip

    这个Action需要实现接收文件上传的功能,通常通过`@Params`注解或者自定义拦截器来解析上传的文件。 3. **处理文件上传**:在`execute`方法中,从HTTP请求中获取上传的文件,可以使用`ServletFileUpload`或`...

    最全Java环境下ckeditor与ckfinder实例(带上传预览能直接使用)

    本文将详细介绍Java环境下集成ckeditor和ckfinder的实例,这是一套功能完善的解决方案,提供了丰富的文本编辑和文件上传预览功能。 ckeditor是一款知名的JavaScript富文本编辑器,它允许用户在网页上创建、编辑和...

Global site tag (gtag.js) - Google Analytics