研究了1天的ckfinder记录

研究了1天的ckfinder记录一 ckfinder 设置固定的文件夹存放图片 不放项目下面 nbsp nbsp 1 普通的 ckfinde 存放的图片是放在项目下面的 userfiles 下 nbsp nbsp 我的做法是放在 Tomcat 下 webapps 下一个固定的文件夹 userManagePi 用来放文件 userfiles 自己项目的名字 userManage nbsp nbsp 2 修改 CKFinderConf java CKFinderConn

1:ckfinder 设置固定的文件夹存放图片,不放项目下面

    1.普通的ckfinde存放的图片是放在项目下面的userfiles下。  我的做法是放在Tomcat下webapps下一个固定的文件夹(userManagePic)用来放文件userfiles,自己项目的名字(userManage)

    2.修改CKFinderConfig.java,CKFinderConnectorServlet.java,UserfilesDownloadServlet.java下的代码,把所有取到本项目地址的地方用‘userManagePic’替换这个‘userManage’,因为其他的物理地址都是一样的,可直接替换使用。主要换:定义this.baseDir,this.baseURL的地方,其他不变。

2:ckfinder 上传大的轮播图时,展示在上传页面时还是小图片,因为这样比较美观

    1:更改ckfinder.xml文件,红色部分是自己写的注释







true





/userfiles/



1920



600



80



UTF-8



false

   

false



CKFinder_UserRole



true



true



true



html,htm,xml,js






.*



CVS











.*















%BASE_URL%files/



%BASE_DIR%files



0




7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip
















%BASE_URL%images/



%BASE_DIR%images



0




bmp,gif,jpeg,jpg,png
















%BASE_URL%flash/



%BASE_DIR%flash



0




swf,flv

























*



*



/



false



false



false



false



false



false



false



false
























true



%BASE_URL%_thumbs/



%BASE_DIR%_thumbs



false



1900



600



80













imageresize



com.ckfinder.connector.plugins.ImageResize













fileeditor



com.ckfinder.connector.plugins.FileEditor










com.ckfinder.connector.configuration.ConfigurationPathBuilder





























 2:更改了配置,要是更改 assets\admin\ckfinder\ckfinder.js  查找class=”image”的位置



/*’


+ U.app.config.thumbsWidth
+ ‘px; height: ‘
+ U.app.config.thumbsHeight
+ ‘px”>


‘);*/

注释上面的用下面的来更改展示图片的大小

‘);





3.遇到一个英文图片可以上传,但是中文图片上传不在显示,也就上传图片在

这个路径下图片不展示:userManagePic\userfiles\admin\_thumbs\images\cms\article\2017\06

自己本地就是好的,中英文都是,但是同事的就只是英文,这个时候就是Tomcat的问题了,找到conf下的server.xml 增加中文转化URIEncoding=”UTF-8″ :如下



               connectionTimeout=”20000″

               redirectPort=”8443″  URIEncoding=”UTF-8″ />







4:如下图把右击图片,弹出框里面的改变尺寸,下载,重命名注释,则更改assets\admin\ckfinder\ckfinder.js,格式化之后大约8730行,加一个判断

 if(v!=’改变尺寸’&&v!=’下载’){

                r.push(‘                      if (f.opera || f.gecko && f.mac) r.push(‘ οnkeypress=”return false;”‘);
                     if (f.gecko) r.push(‘ οnblur=”this.style.cssText = this.style.cssText;”‘);
                     var x = (y.rD || 0) * -16;
                     r.push(‘ οnmοuseοver=”CKFinder.tools.callFunction(‘, p._.qz, ‘,’, q, ‘);” οnmοuseοut=”CKFinder.tools.callFunction(‘, p._.qm, ‘,’, q, ‘);” οnclick=”CKFinder.tools.callFunction(‘, p._.ql, ‘,’, q, ‘); return false;”>‘ + ‘‘);
                     if (y.hQ) r.push(‘‘);
                     r.push(v, ‘




‘); 
                 }





5:遇到小图片上传,然后删除失败,大图片上传删除成功解决方案

当小图片的尺寸小于ckfinder.xml里面的maxWidth和maxHeight这个时,上传删除时会被占用,而删除失败,查看了源代码在上传的代码中并没有发现读取的流未被关闭,找了好久,无奈了,只有强制解除对文件的占用我用的ckfinder的版本是2.3的比较老的一版,因为这是之前同事用的,我直接拿来用的,没想到测试测出各种不同的问题,就只能改改改了。下载源码:ckfinder_java_2.3.zip 解压后放在自己的项目目录下,找到删除图片的地方,这个文件下userManage\src\main\java\com\ckfinder\connector\utils\FileUtils.java 。

 public static boolean delete(final File file) throws IOException {

          if (file.isDirectory()) {

for (String item : file.list()) {

File subFile = new File(file.getAbsolutePath()
+ File.separator + item);
if (!delete(subFile)) {

return false;
}
}
}
       /新加判断*/
boolean result = file.delete();
        int tryCount = 0;
        while (!result && tryCount++ < 10) {
            System.gc();    //回收资源
            result = file.delete();
        }
        /新加判断*/
        return result;
}


































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224581.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:37
下一篇 2026年3月17日 上午11:37


相关推荐

  • sqlmap报错注入

    sqlmap报错注入0x00背景学习记录一下报错型的注入,经各方整理和自己总结形成。所有的注入原理都是一样,即用户输入被拼接执行。但后台数据库执行语句产生错误并回显到页面时即可能存在报错注入。0x01概念报错型注入的利用大概有以下3种方式:复制代码1:?id=2’and(select1from(selectcount(*),concat(floor(rand(0)*2),(select(…

    2022年9月29日
    5
  • k8s的apiserver_kube_apiserver

    k8s的apiserver_kube_apiserverAPIserverfunc main() { … #核心 command := app.NewAPIServerCommand() #日志 logs.InitLogs() defer logs.FlushLogs() …}#NewAPIServerCommand#核心是调用run函数 运行AIPserver 永远不会退出return Run(completedOptions, genericapiserver.SetupSignalHandler())#Run#创建

    2022年8月9日
    8
  • 安卓ROM简单定制、打包、签名、换字体「建议收藏」

    安卓ROM简单定制、打包、签名、换字体「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

    2022年10月15日
    4
  • linux zip压缩文件夹

    linux zip压缩文件夹zip r 压缩包名称 zip 文件夹名称

    2026年3月26日
    2
  • 在Ubuntu 20.04中安装Pycharm 2020.1

    在Ubuntu 20.04中安装Pycharm 2020.1前几天 我们用虚拟机安装了 Ubuntu20 04 今天 我们来安装一些常用的工具 比如 Pycharm Pycharm 是一种用来开发 Python 的 IDE 归结两个字 好用

    2026年3月27日
    1
  • js中的prototype有什么作用?[通俗易懂]

    js中的prototype有什么作用?[通俗易懂]1、prototype对象是实现面向对象的一个重要机制。每个函数也是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype。Prototype表示了该函数的原型,prototype表示了一个类的属性的集合。当通过new来生成一个类的对象时,prototype对象的属性就会成为实例化对象的属性。下面以一个例子来介绍prototype的应用,代码如下:123456…

    2022年7月22日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号