CKeditor和CKfinder结合使用,CKfinder 上传自定义文件名

CKFinder的系列文章到目前应该说基本可以满足开发需求了,不过还有一个小细节,CKFinder默认上传的文件名和源文件名一致,如果文件名重复会自动添加编号“(1)”“(2)”等

后面有已经修改打包好的源码,及jar包

如果需要自定义上传的文件名怎么办呢?

先看效果

采用uuid来命名 

时间戳作为前缀 

下面给出两种方案来实现ckfinder自定义文件名的方法,第一种只是思路,重点是第二种方法。我们通过修改ckfinder的源码来实现ckfinder上传文件名的自定义

方法一 自己捕获图片按钮提供上传

可以捕获图片按钮的点击事件

像捕获其他按钮的事件一样。

这个方法不是本文的重点,本文的重点是第二中方法。

方法二 修改CKFinder的源码

本文介绍这种方法,如何修改CKFinder的源码来自定义上传文件的文件名。

本文讲介绍如何加载ckfinder的源码,然后修改上传文件重命名的代码,最后将修改后的代码打包成jar包。

下载源码

去ckfinder的官网下载,我下载的是Java版本

https://cksource.com/ckfinder/download

目前的最新版下载地址

https://download.cksource.com/CKFinder/CKFinder%20for%20Java/2.6.2/ckfinder_java_2.6.2.zip?

下载好之后解压。其中的_source就是源代码

我们发现其源代码是一个Maven工程。

ok,首先确保电脑上成功安装了Maven。Eclipse里也成功配置了Maven。

注:Eclipse 要自己安装Maven   ,如果你用的是Myeclipse的话是自带Maven的

打开MyEclipse  右键 -> Import ->Maven4Myeclipse -> Existring Maven  Project


加载源码

打开Eclipse

File -> Import 选择Existing Maven Projects,然后Next


浏览刚才解压的位置,然后Finish

修改源码

我们需要修改的代码在CKFinder下 
我们需要修改com.ckfinder.connector.handlers.command下的FileUploadCommand.java

重命名可以修改两个方法来实现一个是newFileName  还有一个是getFileItemName ,这里只讲getFileItemName的方法,因为这个改起来简单。 这两张命名方式选择一种就好了。 不用的就注释掉。

贴上代码:

//UID命名
String Origin = item.getName();
String uuid = UUID.randomUUID().toString(); 
// 去掉“-”符号
String id = uuid.substring(0,8)+uuid.substring(9,13)+uuid.substring(14,18)+uuid.substring(19,23)+uuid.substring(24); 
return String.valueOf(id+"."+FileUtils.getFileExtension(Origin));
//时间戳命名
String Origin = item.getName();
return String.valueOf(new Date().getTime()+"."+FileUtils.getFileExtension(Origin));

好了,代码修改完毕。

打包源码

Run AS Maven build( 注意是下面的 )

在Goals 中输入package,然后点击Run

看到如下信息说明打包成功。

进入源代码的文件夹,我们发现在CKFinder目录下多了一个target目录

target目中中的CKFinder-2.6.0.jar就是我们打包后生成的jar

至此jar包已经生成,最后一步就是替换以前的jar。

部署测试

将项目中引用的CKFinder-2.6.0.jar替换CKFinder-2.6.0.jar


重新Build jar包就可以了。

>>>源码JAR包下载<<<

0
Shine#1
Shine#1

最新文章 更多