本文在http://sarin.iteye.com/blog/599056介绍的基础之上进行进一步的研究。
在CKEditor中把上传配置给打开,很简单,脚本段改为如下设置:
- <script type="text/javascript">
- CKEDITOR.replace('content',{filebrowserUploadUrl : '/ckeditor/ckeditor/uploader?Type=File',
- filebrowserImageUploadUrl : '/ckeditor/ckeditor/uploader?Type=Image',
- filebrowserFlashUploadUrl : '/ckeditor/ckeditor/uploader?Type=Flash'
- });
- </script>
这里参数我们可以自己设置,加个Type为了区分文件类型,因为都使用同一个Servlet处理。事情没有这么简单,CKEditor毕竟是个复杂的组件,我们这么配置,看看它给我们还原成什么了吧,在FireFox中使用FireBug查看,看到了这些:
看到了吧,在Type后面它为我们又挂接了几个参数,其中我们需要的是CKEditorFuncNum和file域的name值upload,CKEditorFuncNum这个参数是用来回调页面的,就是上传成功后,页面自动切换到“图像”选项卡。upload参数是servlet获取上传文件用的参数名。其余参数就根据需要进行了。
这些参数的名称都是查看源码获得的,不能想当然。有了这些东西后面就好办了,就是文件上传了么。很简单了。这里我们使用apache commons组件中的fileupload和io。
先看web.xml,我们做些设置。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
-
- <servlet>
- <servlet-name>SimpleUploader</servlet-name>
- <servlet-class>ckeditor.CKEditorUploadServlet</servlet-class>
- <init-param>
- <param-name>baseDir</param-name>
- <param-value>/UserFiles/</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>false</param-value>
- </init-param>
- <init-param>
- <param-name>enabled</param-name>
- <param-value>true</param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsFile</param-name>
- <param-value></param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsFile</param-name>
- <param-value>
- html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|ftl
- </param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsImage</param-name>
- <param-value>jpg|gif|jpeg|png|bmp</param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsImage</param-name>
- <param-value></param-value>
- </init-param>
- <init-param>
- <param-name>AllowedExtensionsFlash</param-name>
- <param-value>swf|fla</param-value>
- </init-param>
- <init-param>
- <param-name>DeniedExtensionsFlash</param-name>
- <param-value></param-value>
- </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>SimpleUploader</servlet-name>
- <url-pattern>/ckeditor/uploader</url-pattern>
- </servlet-mapping>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
- </web-app>
主要是Servlet的初始化参数,规定了文件上传的扩展名规则,就是允许上传的类型和阻止上传的类型。分为File,Image和FLASH三种,这个上传参数的设置是对应的。Debug是设置servlet知否进行debug,默认是关闭的。enabled是设置该servlet是否有效,如果禁止上传,就打成false。还有一个baseDir是设定CKEditor上传文件的存放位置。
下面就是实现类了,比较长,但是有详细的注释:
- package ckeditor;
- import java.io.*;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import javax.servlet.ServletException;
- import javax.servlet.http.*;
- import org.apache.commons.fileupload.FileItem;
- import org.apache.commons.fileupload.FileItemFactory;
- import org.apache.commons.fileupload.disk.DiskFileItemFactory;
- import org.apache.commons.fileupload.servlet.ServletFileUpload;
- public class CKEditorUploadServlet extends HttpServlet {
- private static String baseDir;
- private static boolean debug = false;
- private static boolean enabled = false;
- private static Hashtable allowedExtensions;
- private static Hashtable deniedExtensions;
- private static SimpleDateFormat dirFormatter;
- private static SimpleDateFormat fileFormatter;
-
-
-
- public void init() throws ServletException {
-
- debug = (
分享到:
相关推荐
3. **集成CKFinder**:在CKEditor的配置中,设置`filebrowserBrowseUrl`和`filebrowserUploadUrl`属性,指向CKFinder的URL,以启用文件浏览和上传功能。这样,当用户点击CKEditor中的"插入图像"或"插入链接"按钮时,...
配置文件`config.xml`是CKFinder的核心设置,用于定义文件上传路径、权限、大小限制等。例如: ```xml <!-- 将baseURL中的fckeditor替换为你的工程名 --> <baseURL>/fckeditor/userfiles/ <!-- maxSize=0 表示上传...
- 修改 **config.xml** 文件中的 `<enabled>` 标签为 `<enabled>true</enabled>` 以开启文件上传功能。 - 修改 `<baseURL>` 标签以指定文件的上传路径。 #### 三、配置web.xml 接下来需要在项目的 **web.xml** ...
对于图片上传,CKEditor提供了一个内置的文件上传插件,但默认不开启。需要配置`filebrowserBrowseUrl`、`filebrowserUploadUrl`等相关选项,或者使用CKFinder等文件管理器进行集成。 7. **与后端交互**: 当用户...
5. **HTML5拖放上传**:背景文件上传功能,支持HTML5拖放。 6. **列表和图标视图**:用户可以选择以列表或图标形式查看文件。 7. **键盘快捷键**:提高操作效率。 8. **选择文件/组的方法**:鼠标或键盘的标准选择...
5. **处理文件上传**:如果需要支持文件上传,需要创建一个Java Servlet来处理FCKeditor的POST请求。FCKeditor会将文件内容作为POST请求的一部分发送到服务器。 6. **测试与调试**:最后,运行你的Web应用,测试...
6. **处理文件上传**:FCKeditor支持文件上传功能,需要在服务器端编写处理文件上传的代码,通常使用Servlet或Struts Action来接收上传的文件并保存到服务器。 7. **安全考虑**:在实际应用中,必须注意FCKeditor的...
3. **配置web.xml**:打开FCKeditor-2.3/web/WEB-INF/web.xml文件,找到两个`servlet`和`servlet-mapping`的定义。将这两个配置复制到你的项目中的web.xml文件,但需要修改`url-pattern`,将原来的路径改为与你的...
- **上传设置**:如果涉及文件上传功能,要检查`config.json`或`ewebeditor.config.js`中的上传路径和URL设置,确保服务器可以访问并处理上传请求。 2. **浏览器兼容性**: - EWebEditor主要基于IE浏览器开发,...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
- 修改`web.xml`文件,确保SimpleUploader的Servlet启用(将enabled参数值设为true),同时设置Connector Servlet的baseDir参数指向文件上传的目录。 4. **添加TLD文件定义**: - 在`web.xml`中添加以下代码以...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...