FCKeditor--图片保存到数据库
俊哥同学想将FCKeditor的上传的图片保存到数据库,因为默认情况下,FCKeditor只将图片保存到web服务器上,而俊哥的resin部署在一台UNIX主机上,resin的启动用户线程没有创建文件的权限,程序在保存文件到UNIX磁盘时报错。。。
于是分析了下FCKeditor的源码,决定来改造下,让FCK将图片保存到数据库,思路如下:
(1)删除项目中fck的jar包,将fck源代码引入,
(2)将fck的tld文件, *.properties文件放到项目中(注意:jar中有这些文件,但是源文件中没有,需要从jar中将它们copy过来)
(3)修改FCK的类:
net.fckeditor.connector.Dispatcher 的 doPost 方法 第280行,原因:原代码在这里判断保存在web服务器上的图片名称是否与用户上传的一样;现在我们根据文件名称结合系统时间生成了新的文件名,所以以前的判断逻辑对我们不适用了。
net.fckeditor.connector.impl.AbstractLocalFileSystemConnector 的 fileUpload 方法第78行,将图片保存到数据库,
(4)新增加的类:
com.nami.servlet.ImageServlet 处理图片的显示问题 , 并在web.xml中映射 /userfiles/image/* 的请求,因为FCK会用这个URL去页面显示图片,如:<img src="/userfiles/image/nami.jpg"/>
com.nami.dao.ImageDao 图片保存到数据库(BLOB类型保存)、从数据库查询图片(按url后面的图片名称查询)
收工...