fckeditor绝对路径的配置以及源文件的修改

这个问题我很是郁闷,很早以前就想着需要改fckeditor的上传文件的配置,终于这个项目还是要这么做,搜了N遍的GOOGLE和百度也没有看到网上有合适的解决办法,后来因为 01404421 大师的指点(在此对他表示感谢,虽不知道男女,姑且用他来称呼吧,呵呵),我对部分做了修改,也给予网上N多需要这方面资料的人一点方法。

不废话了,直接主题吧。

fckeditor.properties配置文件


#上传文件的绝对路径
connector.userFilesAbsolutePath = D:/temp
#在web上使用文件时的虚拟目录
connector.userFilesPath = http://localhost:8181/temp

connector.userPathBuilderImpl=net.fckeditor.requestcycle.impl.MyContextPathBuilder

connector.impl=net.fckeditor.connector.impl.LocalConnector

connector.userActionImpl=net.fckeditor.requestcycle.impl.MyEnabledUserAction


tomcat还需要在server.xml中配置虚拟目录

<Context path="/temp" docBase="D:\temp" reloadable="true"/>


创建实现类net.fckeditor.requestcycle.impl.MyContextPathBuilder
其实一般情况下读者不需要重写这个类,只要
connector.userPathBuilderImpl=net.fckeditor.requestcycle.impl.ServerRootPathBuilder
一样可以配置绝对路径,也不需要修改任何的源代码,但是我的项目有特殊的要求,相信绝大多数人一样,类似博客,一个用户只能访问属于自己的空间,这里,必须将该用户的浏览上传权限指定下来。所以对MyContextPathBuilder类为


package net.fckeditor.requestcycle.impl;


import javax.servlet.http.HttpServletRequest;

import com.news.base.SysContants;
import com.news.base.TokenBean;

import net.fckeditor.handlers.PropertiesLoader;
import net.fckeditor.requestcycle.impl.ContextPathBuilder;

/**
* 给不同的用户看到属于他自己的上传空间
*/
public class MyContextPathBuilder extends ContextPathBuilder {

@Override
public String getUserFilesPath(HttpServletRequest request) {
// TODO Auto-generated method stub
//在此可以根据从session中读取的用户名或者ID来对应其可以操作的目录
TokenBean tokenBean = (TokenBean) request.getSession().getAttribute(SysContants.SESSION_TOKEN);
int userId = Integer.parseInt(tokenBean.getUserId()+"");
return PropertiesLoader.getUserFilesPath()+"/"+userId;
}

@Override
public String getUserFilesAbsolutePath(HttpServletRequest request) {
// TODO Auto-generated method stub
TokenBean tokenBean = (TokenBean) request.getSession().getAttribute(SysContants.SESSION_TOKEN);
int userId = Integer.parseInt(tokenBean.getUserId()+"");
return PropertiesLoader.getUserFilesAbsolutePath()+"/"+userId;
}

}



这样在D盘的temp文件下面产生了已该用户的ID命名的文件夹。那么所属该用户上传浏览只能在这个文件夹中进行,浏览图片的域名只需要http://localhost:8181/temp/XX.jpg

以上处理只是自己在这个项目中遇见的问题,特殊情况可以由读者自己去实现,当然,放在绝对路径中的好处有很多,最起码TOMCAT重启后不影响文件丢失,我在项目中还写了一个servlet的图片访问。

因为发布系统以外还有另外一个项目需要访问D盘的图片,对于该问题有很多资料解决,我个人还是比较喜欢用<img src="aa.servlet?tag=ss">的方式来找绝对路径的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值