[CKEditor那点事儿]使用java开发ckeditor的文件上传功能

关于CKEditor的使用,网络上有无数的文章,这里不再赘述。而关于java支持的文件上传功能,网络上同样有千千万万的文章,但是遍历十几二十篇就会发现,千篇一律的抄袭,各种爬虫程序带来的互联网信息垃圾给我们的信息获取带来很大的障碍。那些使用java开发CKEditor上传和文件浏览功能,千篇一律的使用的是Servlet的方式,传统的JSP下的模式,不管现在框架已经发展到何种境界,都是一样的照搬,抄袭,让人很无奈,其实这是一个很简单的功能,就是获取请求,上传文件,返回结果而已。

通常我们的项目会使用springMVC或者struts或者其他框架,来作为C的部分,说白了,也就是控制请求和执行流程。而如果我们在采用了spring或者struts 的系统中,还是去使用servlet配置urlmapping来拦截文件上传请求,那岂不是让人很别扭,那些copy文章的人,怎么就不去考虑考虑呢?

言归正传,ckeditor默认的图片插入,是不带“浏览图片”和“上传”标签的,所以需要手动配置一下,开启这个功能,而主要的猫腻,也就是这个配置的地方:

上面我们配置了路径,由于ckeditor并没有支持java的插件,所以这里也是需要我们自己开发的内容。上面的上传和浏览图片的请求,我们定义了自己的url,也就是上述.do结尾的部分,我的测试工程中使用的是springMVC,利用的是2.5以后的注解功能。

好了,这里配置了,那么作用是什么呢?打开ckeditor:

 

可以看到,上述多出了上传和浏览的功能,现在点击是没用的,因为我们还没开发具体的实现嘛

那么那些配置出了多出了这两个地方,还有什么作用呢?用firefox看看其上传部分的代码,可以很明显直到那个配置的url到底是什么用途了

 

其实就是一个上传form,那个action的url就是我们配置的而已,所以这里只要开发拦截这个请求并上传文件的功能就可以了嘛,多简单的事儿。

 

写代码前,看看我们的现状吧,我们可能会让这个图片上传到图片服务器去,但是呢,兜里尚未有足够的银子,而且这个图片暂时量不大,所以现阶段还是保存在应用的特定位置中,够无奈的吧,没办法,谁让咱么有特定的图片服务器呢,那么就下办法在本应用下作文章吧。我们采用一个upload/img的目录,来保存图片文件,以后要迁移到图片服务器也方便些。

但是问题来了,所有的图片都放到这个文件夹下,岂不是很庞大,而且一旦超过1000张,文件搜索速度是有点折磨的,那就咱想想办法吧,那就再建立一级目录,每一级下面最多放500张,如果当前文件夹下超过了500张,就重新建立一个文件夹,放入其中。这样目录就变成了三级的 upload/img/20100824 我们采用时间字符串来命名。

那就看看代码吧:

 

这里我用的是注解@Controller的方式,如果你用的是struts,那就去配置一个action吧,都是很简单的事儿……

 

再啰嗦点别的,这里如果使用这样的方式开发完成以后,在eclipse里直接去run in server,你会发现上传没报错,但是返回的url根本不显示图片嘛,怎么回事儿?

是这样子的,在eclipse下有一个server的显示框,双击你建立的server,可以配置server的启动路径等内容,其中有一个需要我们特别关注的选项:

将来项目发布的时候,如果你直接将项目拷贝到tomcat里,也没啥子问题,但是测试阶段更为方便的,是在这里更改下部署路径等,让我们的上传功能跟上线之后一样生效。

上述的上传日志,会打印出:

D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/NormandyPosition/freemarker/upload/img/20100824/logo.jpg

对比下上图的内容,是不是你也明白了是怎么回事儿了,上述的其实是一个临时的目录,所以这里我们要更改一下:

把server path改成你的apache的安装目录,你可以直接选择第二个单选按钮

把deploy path改成你的项目名称

这样改完之后呢:

 

 

 

 

搞定了~

 

下篇咱想想怎么去弄一个多级目录的服务器的图片浏览功能

 

 

  • 0
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
### 回答1: CKEditor 4 是一个非常流行的富文本编辑器,它允许用户在网页上进行文本编辑,并支持上传文件。 要在 CKEditor 4 中实现文件上传功能,需要通过相关的插件来实现。以下是一个基本的步骤指南: 1. 首先,确保你正确地将 CKEditor 4 集成到你的网页中,详细的集成方法可以在官方文档中找到。 2. 为了实现文件上传功能,你需要一个文件上传插件。常用的插件有 "Upload Image" 和 "Upload File"。你可以在 CKEditor 官方网站的插件页面上找到这些插件,并按照指南进行下载和安装。 3. 安装完成后,需要在 CKEditor 的配置中启用相应的插件。可以通过配置文件或者 JavaScript 代码来进行配置。具体的配置方法可以在插件的文档中找到。 4. 配置插件后,你需要配置文件上传的目标路径。通常,服务器端会有一个接口来接收上传的文件并保存它们。在插件的配置中,你可以指定接口的 URL,并设置其他相关的配置参数,如文件类型限制、最大文件大小等。 5. 最后,通过设置 CKEditor 的 toolbar,将文件上传按钮添加到编辑器的工具栏中,以便用户能够使用功能。 总结一下,要在 CKEditor 4 中实现文件上传功能,首先需要安装相应的文件上传插件,然后配置插件和服务器接口,并将上传按钮添加到编辑器的工具栏中。这样,用户就可以通过点击上传按钮,选择并上传文件到指定的服务器路径上了。 ### 回答2: CKEditor 4 是一种常用的富文本编辑器,用于在网页中编辑和排版文本。要实现在 CKEditor 4 中上传文件,可按照以下步骤进行操作: 1. 配置服务器端的文件上传功能:首先,需要在服务器上设置一个用于接收和处理文件上传的脚本。该脚本必须具备处理文件上传功能,并将文件保存到服务器指定的目录中。 2. 配置前端页面中的上传按钮:在 CKEditor 4 的工具栏中,可以添加一个自定义的按钮,作为文件上传的入口。可以使用 CKEditor 提供的工具栏配置选项,选择合适的图标和按钮样式。 3. 编写 JavaScript 代码:在页面加载 CKEditor 4 时,需要编写一些 JavaScript 代码来处理上传按钮的点击事件。可以使用 CKEditor 提供的 API 方法来调用文件上传脚本,并指定文件上传后的回调函数。 4. 文件上传:当用户点击上传按钮时,会触发 JavaScript 代码中的上传事件。该事件会将用户选择的文件发送到服务器端的上传脚本进行处理。上传脚本会将文件保存到指定的目录,并返回一个文件的存储路径或唯一的文件标识符。 5. 在编辑器中插入文件链接:当上传脚本处理完文件上传后,可以通过 JavaScript 将文件的链接插入到 CKEditor 4 的编辑区域。可以使用 CKEditor 提供的 API 方法来实现这一功能。 需要注意的是,文件上传涉及到服务器端和客户端的交互,故需要一定的后端开发经验和前端技术知识。同时,还需要对文件的上传与安全性有一定的了解,以确保上传操作的安全和有效性。 ### 回答3: CKEditor是一个流行的富文本编辑器,可以用来方便地上传和编辑文本内容。要在CKEditor中实现文件上传功能,我们可以按照以下步骤进行操作。 首先,我们需要在HTML页面中引入CKEditor的相关文件,包括主要的编辑器代码、上传插件和相应的样式表。 其次,我们需要在页面中定义一个用于展示CKEditor的textarea元素,并为其指定一个id,以便之后的操作。 接下来,我们可以通过JavaScript代码来初始化CKEditor编辑器。通过CKEDITOR.replace()方法,我们可以将之前定义的textarea元素与CKEditor绑定起来,并指定一些编辑器的配置选项。 当CKEditor初始化完成后,我们可以在代码中添加一个上传文件的按钮,通过JavaScript代码为其添加点击事件处理函数。 在点击上传按钮时,我们可以调用CKEditor提供的文件上传方法。通过CKEDITOR.uploadUrl()方法,我们可以设置上传文件的URL路径,以及回调函数来处理上传成功后的操作。 在上传文件成功后,我们可以通过回调函数来处理返回的数据。可以通过CKEditor提供的接口来获取上传文件的URL,在编辑器中插入图片或链接等操作。 总的来说,要在CKEditor4中实现文件上传功能,我们需要引入相关的文件和插件,定义编辑器的相关设置,通过按钮和上传方法来触发文件上传操作,并在成功后进行相关操作。这样就可以实现在CKEditor中方便地上传文件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值