研究了1天的ckfinder记录
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文件,红色部分是自己写的注释
<config> <!-- <imgWidth>1920</imgWidth>
<imgHeight>600</imgHeight> 是设置压缩图片最大的高宽 -->
<enabled>true</enabled>
<baseDir></baseDir>
<baseURL>/userfiles/</baseURL>
<licenseKey></licenseKey>
<licenseName></licenseName>
<imgWidth>1920</imgWidth>
<imgHeight>600</imgHeight>
<imgQuality>80</imgQuality>
<uriEncoding>UTF-8</uriEncoding>
<forceASCII>false</forceASCII>
<disallowUnsafeCharacters>false</disallowUnsafeCharacters>
<userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>
<checkDoubleExtension>true</checkDoubleExtension>
<checkSizeAfterScaling>true</checkSizeAfterScaling>
<secureImageUploads>true</secureImageUploads>
<htmlExtensions>html,htm,xml,js</htmlExtensions>
<hideFolders>
<folder>.*</folder>
<folder>CVS</folder>
</hideFolders>
<hideFiles>
<file>.*</file>
</hideFiles>
<defaultResourceTypes></defaultResourceTypes>
<types>
<type name="files">
<url>%BASE_URL%files/</url>
<directory>%BASE_DIR%files</directory>
<maxSize>0</maxSize> <!-- 上传的大小不限制时,为0,否则就是类似的1MB -->
<allowedExtensions>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</allowedExtensions>
<deniedExtensions></deniedExtensions>
</type>
<type name="images">
<url>%BASE_URL%images/</url>
<directory>%BASE_DIR%images</directory>
<maxSize>0</maxSize> <!-- 上传的大小不限制时,为0,否则就是类似的1MB -->
<allowedExtensions>bmp,gif,jpeg,jpg,png</allowedExtensions>
<deniedExtensions></deniedExtensions>
</type>
<type name="flash">
<url>%BASE_URL%flash/</url>
<directory>%BASE_DIR%flash</directory>
<maxSize>0</maxSize> <!-- 上传的大小不限制时,为0,否则就是类似的1MB -->
<allowedExtensions>swf,flv</allowedExtensions>
<deniedExtensions></deniedExtensions>
</type>
</types>
<accessControls>
<accessControl>
<role>*</role>
<resourceType>*</resourceType>
<folder>/</folder>
<folderView>false</folderView>
<folderCreate>false</folderCreate>
<folderRename>false</folderRename>
<folderDelete>false</folderDelete>
<fileView>false</fileView>
<fileUpload>false</fileUpload>
<fileRename>false</fileRename>
<fileDelete>false</fileDelete>
</accessControl>
</accessControls>
<thumbs> <!--下面的高宽是用来设置上传图片时展示的div的大小,并且这个高宽一定不能大于顶部设置的高宽大小,否则删除失败,一直提示跳过,并且手动删除时,也会失败,提示正在使用 <imgWidth>1920</imgWidth>
<imgHeight>600</imgHeight>-->
<enabled>true</enabled>
<url>%BASE_URL%_thumbs/</url>
<directory>%BASE_DIR%_thumbs</directory>
<directAccess>false</directAccess>
<maxWidth>1900</maxWidth>
<maxHeight>600</maxHeight>
<quality>80</quality>
</thumbs>
<plugins>
<plugin>
<name>imageresize</name>
<class>com.ckfinder.connector.plugins.ImageResize</class>
<params>
<param name="smallThumb" value="90x90"></param>
<param name="mediumThumb" value="120x120"></param>
<param name="largeThumb" value="180x180"></param>
</params>
</plugin>
<plugin>
<name>fileeditor</name>
<class>com.ckfinder.connector.plugins.FileEditor</class>
<params></params>
</plugin>
</plugins>
<basePathBuilderImpl>com.ckfinder.connector.configuration.ConfigurationPathBuilder</basePathBuilderImpl>
</config>
2:更改了配置,要是更改 assets\admin\ckfinder\ckfinder.js 查找class="image"的位置
/*'<div class="image" ><div role="img" style="background-size: cover;width: '
+ U.app.config.thumbsWidth
+ 'px; height: '
+ U.app.config.thumbsHeight
+ 'px"></div></div>');*/
注释上面的用下面的来更改展示图片的大小
'<div class="image" style="width: 320px; height:240px"><div role="img" style="background-size: cover;width: 100%; height: 100%"></div></div>');
3.遇到一个英文图片可以上传,但是中文图片上传不在显示,也就上传图片在
这个路径下图片不展示:userManagePic\userfiles\admin\_thumbs\images\cms\article\2017\06
自己本地就是好的,中英文都是,但是同事的就只是英文,这个时候就是Tomcat的问题了,找到conf下的server.xml 增加中文转化URIEncoding="UTF-8" :如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
4:如下图把右击图片,弹出框里面的改变尺寸,下载,重命名注释,则更改assets\admin\ckfinder\ckfinder.js,格式化之后大约8730行,加一个判断
if(v!='改变尺寸'&&v!='下载'){
r.push('<span class="cke_menuitem"><a id="', s, '" class="', u, '" href="javascript:void(\'', (y.label || '').replace("'", ''), '\')" title="', y.label, '" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem"' + (w ? 'aria-haspopup="true"': '') + (t == a.aY ? 'aria-disabled="true"': '') + (t == a.eV ? 'aria-pressed="true"': ''));
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;"><span class="cke_icon_wrapper"><span class="cke_icon"' + (y.icon ? ' style="background-image:url(' + a.getUrl(y.icon) + ');background-position:0 ' + x + 'px;"': '') + '></span></span>' + '<span class="cke_label">');
if (y.hQ) r.push('<span class="cke_menuarrow"></span>');
r.push(v, '</span></a></span>');
}
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;
}
研究了1天的ckfinder记录相关推荐
- 清华大学|情绪研究的日常动态心理生理记录数据集DAPPER
清华大学心理学系团队发布面向情绪研究的日常动态心理生理记录数据集DAPPER 为了更好地理解人类情绪的心理和生理基础,人们对实验室以外的情绪相关数据的动态记录越来越感兴趣.通过使用基于智能手机的动态评 ...
- 研究了下FBX Sdk小记录
大过年的找不到耍事,研究了下FBXSdk,用于将FBX格式的东西导成我们私货需要的数据树容器&格式文件.翻了好多文章的说-- 写FBX的读取解析工具与写3DsMAX的插件相比有以下几种好处: ...
- rtems 文件系统(15)-jffs2 研究(5)--测试打印记录mkdir,嵌套mkdir
记下来测试建立多个文件夹,和文件夹嵌套是否有问题. 记录打印信息 [/flash] # ls [/flash] # mkdir data jffs2_lookup() <7>JFFS2: ...
- 时间约束的实体解析中记录对排序研究
时间约束的实体解析中记录对排序研究 人工智能技术与咨询 来源:<软件学报> ,作者孙琛琛等 摘 要:实体解析是数据集成和数据清洗的重要组成部分,也是大数据分析与挖掘的必要预处理步骤.传统的 ...
- 点云学习在自动驾驶中的研究概述
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 自动驾驶公司的发展 有关自动驾驶的研究最早可以追述到2004年的DARPA Grand Challen ...
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core2.0的日志记录与动态查询条件 去 ...
- 点云数据的类型主要分为_点云学习在自动驾驶中的研究概述
作者:蒋天园 Date:2020-04-17 来源:点云学习在自动驾驶中的研究概述 自动驾驶公司的发展 有关自动驾驶的研究最早可以追述到2004年的DARPA Grand Challenge和2007 ...
- 研究人员使用脑机接口从神经信号中重建单词
布朗大学(Brown University)的一个研究小组已经使用脑机接口技术从非人类灵长类动物大脑中记录了神经信号,并重建了英语单词. 研究人员表示,这项发表在<Nature Communic ...
- 在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句
在开发中,我们想在调试中查看EF Core执行的sql语句,可以使用SQL Studio Manager Tools工具,另一种方式是使用EF Core提供的日志.在ASP.NET Core使用Ent ...
- java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛
java奥运会安排赛程问题 开发人员:Takipi会告诉您何时新代码在生产中中断– Log4J vs SLF4J简单vs Logback vs Java Util日志记录vs LOG4J2 日志记录实 ...
最新文章
- 【Design pattern】设计模式思路总结(二)
- 曹原获奖了,不是他终于有资格获奖,是奖终于有机会颁给他
- 某互联网企业技术发展史(四)配置nginx和mysql兼容Yii框架,上传网站并调试成功...
- dubbogo 3.0:牵手 gRPC 走向云原生时代
- 高职学生如何成为编程高手
- 监控系统简介:使用 Prometheus 与 Grafana
- python之函数基础
- 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...
- 演练 网站的导航栏 0920
- uva11054 - Wine trading in Gergovia(等价转换,贪心法)
- (01)VTK读取OBJ格式模型
- mysql join 组合索引,图文详解MySQL中两表关联的连接表如何创建索引
- lan pci 联想开机_我的联想电脑开机老显示DHCP
- 经济学原理曼昆第八版课后习题答案
- 单三相STS电能表 键盘表 代码表 预付费表 非洲 东南亚 分体式电表方案
- 使用Python(OCR)收集体温打卡截图,并自动发消息提醒没交的人。
- VS2010 中修改项目名称
- 美式口语发音技巧:《发音总结》
- Vue表单输入绑定(元婴中期)
- 自写网络验证,支持注册 充值 在线消息 自动更新