【问题标题】:Rename Image Uploaded With CKFinder重命名使用 CKFinder 上传的图像
【发布时间】:2011-04-06 08:35:52
【问题描述】:

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

【问题讨论】:

    标签: php image upload ckfinder


    【解决方案1】:

    您使用 CKFinder 的 PHP 版本吗?如果是这样,以下可能会有所帮助。

    上传文件时,您可以自动删除空格、带重音的字符等。在 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;
    

    此设置允许用户通过单击出现在图像角落的箭头来访问上下文菜单。

    好好的,

    【讨论】:

    • 不客气。我很高兴它有帮助。
    • "如果您使用 FireFox 浏览器查看该站点,您需要在右键单击后按“Esc”按钮,因为 FireFox 上下文菜单覆盖了 CK​​Finder 上下文菜单" -- > 仅当您更改了 Firefox 的默认配置以防止页面隐藏浏览器上下文菜单时,才会发生这种情况。默认情况下,它将仅显示 CKFinder 菜单。
    • 谢谢你的澄清,我已经很久没有调整我的配置了,我不记得改变它了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    相关资源
    最近更新 更多