使用CKFinder上传的图片如何重命名?

6

我可以重命名使用CKFinder上传的图片吗?

1个回答

7

如果您使用的是PHP版本的CKFinder,以下内容可能会有所帮助。

在上传文件时,您可以自动删除空格、带重音符号的字符等。在config.php文件中设置"ForceAscii"为"true":

$config['ForceAscii'] = true;

"ForceAscii"设置的代码可以在此文件中的第59行开始找到:
ckfinder\core\connector\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;

这个设置允许用户通过点击出现在图像角落的箭头来访问上下文菜单。
祝一切顺利, Joe

1
如果您正在使用FireFox浏览器查看网站,则在右键单击后需要按“Esc”按钮,因为FireFox上下文菜单会覆盖CKFinder上下文菜单。这只会发生在您更改了Firefox的默认配置以防止页面隐藏浏览器上下文菜单的情况下。默认情况下,它将仅显示CKFinder菜单。 - AlfonsoML
感谢您的澄清,我已经很久没有调整我的配置了,所以我不记得改变它了。 - codewaggle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接