我可以重命名使用CKFinder上传的图像吗?
答案 0 :(得分:6)
您使用PHP版CKFinder吗?如果是这样,以下内容可能有所帮助。
上传文件时,您可以自动删除空格,带重音的字符等。设置" ForceAscii"到"真"在config.php文件中:
$config['ForceAscii'] = true;
" ForceAscii"的代码设置从此文件的第59行开始:
ckfinder \芯\连接器\ PHP \ PHP5 \ CommandHandler \ FileUpload.php
if ($_config->forceAscii()) {
$sFileName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sFileName);
}
要在文件上传时重命名,您可以将自己的代码添加到" ForceAscii"代码。
要在开头或结尾添加一些静态文本:
if ($_config->forceAscii()) {
$sFileName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sFileName);
$sFileName .= "YourTextHere"; // Append your text
$sFileName = "YourTextHere" . $sFileName; // Prepend your text
}
在强制ascii代码是字符串替换之前,如果符合您的目标,您可以添加自己的字符串替换版本。
$sFileName = str_replace(array(":", "*", "?", "|", "/"), "_", $sUnsafeFileName);
如果用于重命名的文字会有所不同,您需要提供更多详细信息:
文本会根据上传文件的用户而有所不同吗?
每个图像都会有所不同,无论是谁上传它?
什么将决定使用的实际文本(基于用户名?)。
最新版本2.1允许用户一次上传多个文件。这可能会影响你采取的方法。
如果您提供其他信息,我会看看我是否能提出更好的答案。
这是否意味着允许最终用户重命名他们的图片? 用户可以按如下方式重命名图像:
当他们在文件浏览器窗口中查看图像时,他们会右键单击图像。 "重命名"是上下文菜单中的选项之一。
编辑:最新版本的CKFinder(2.1)有一个配置设置放在config.js文件中:
config.showContextMenuArrow = true;
此设置允许用户通过单击图像一角出现的箭头来访问上下文菜单。
好吧,
乔