本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7587181
建立时间:2006年5月29日




[TinyMCE+FCKeditor]让FCKEditor支持动态设置文件目录
软件技术

lhwork 发表于 2006/8/11 10:15:32

注:以下为在java程序中使用FCKEditor的文件上传功能时可能用到的,其他语言本文不涉及. 使用FCKEditor的时候,fck把文件分为几个分类,定义在frmresourcetype.html文件里. FCKEditor本身实际上也支持用户动态指定文件目录,但是FCKEditor的Java版本的Tag不支持,所以有些问题. 而且虽然Fckeditor本身支持,却要设置3个url(图片,链接,和flash)的地址,很是麻烦. 想要达到的目的: 1.所有文件类型放在一个地方(如果不想去掉这个,注意后面的修改要根据实际情况修改) 2.让FckEditor每次都可以指定用户自定义目录--用于编辑文章.否则一大堆文件太乱,而且自己建目录就会偷懒了,也不知道那个文件是那个文件,管理上不好办. 修改步骤: 1.去掉其他类型 frmresourcetype.html修改类型数组   var aTypes = [  [’’,’all files’] ] ;    只有一个了,就不会触发事件了. 2.修改ConnectorServlet  原来为: String currentPath=baseDir+typeStr+currentFolderStr;    改为:   String serverPath = getServerPath(request);      String currentPath=serverPath+currentFolderStr;   增加函数    private String getServerPath(HttpServletRequest request)   {    String serverPath = request.getParameter("ServerPath");        if(null == serverPath || serverPath.length()<=0)    {        serverPath = baseDir;    }    else    {     String realDir=getServletContext().getRealPath(serverPath);     File aFile=new File(realDir);     if(!aFile.exists())     {      aFile.mkdirs();     }           }        return serverPath;         }    3.修改FCKeditorTag.java   增加变量 private String serverFilePath = null;   增加 ServerFilePath的设置函数  public void setServerFilePath(String value){     serverFilePath = value; }    修改 doStartTag 函数,在后面增加  if (serverFilePath != null)  {   fcked.getConfig().put("ServerFilePath",serverFilePath);    String connectorUrl = pageContext.getServletContext().getInitParameter("ConnectorUrl");         if(null!=connectorUrl && connectorUrl.length()>0)   {    connectorUrl = ((HttpServletRequest)pageContext.getRequest()).getContextPath() + connectorUrl;     if (linkBrowserURL == null)     fcked.getConfig().put("LinkBrowserURL",connectorUrl + "&ServerPath=" + serverFilePath);        if (imageBrowserURL == null)     fcked.getConfig().put("ImageBrowserURL",connectorUrl + "&ServerPath=" + serverFilePath);        //升级后,增加flash的设置.以及快速上传等的设置   }  }    5.修改tld 增加serverFilePath 6.web.xml增加一个参数:根据实际改为你的url   <context-param>   <param-name>ConnectorUrl</param-name>   <param-value>/fckeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector</param-value>   </context-param>  需要自己做的后续工作 1.需要每次生成新目录的函数. 这个目录还要保存在相关记录的字段里,用于在编辑时取出来. 2.在实际使用中,如果编辑新闻后没有保存,取消了发布,那么上传的文件却无法撤销了,很是麻烦.所以需要一些办法来删除这些没有用到的文件. 例如新增新闻的时候在目录下建立一个.temp文件. 后台程序定时扫描一段时间内的目录,达到定期删除的目的. 3.编辑时没有用到的文件怎么办?    过滤内容,检测所有文件,如果发现没有用到的,就删除? 待思考  警告:如果你的系统是要防止编辑文章的用户hack的话,那么这种方法是不适用的,这种方法建立在对用户的信任机制上的. --应该需要自己对filemanager进行很多修改.  


阅读全文(3169) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144756984 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号