Переименовать изображение, загруженное с помощью CKFinder

Могу ли я переименовать изображение, загруженное с помощью CKFinder?

1 ответ

Решение

Используете ли вы PHP-версию CKFinder? Если это так, может помочь следующее.

При загрузке файлов вы можете автоматически удалять пробелы, символы с акцентами и тому подобное. Установите "ForceAscii" в "true" в файле 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
    }

Непосредственно перед тем, как код force ascii будет заменять строку, вы можете добавить свою собственную версию замены строки, если она будет соответствовать вашим целям.

$sFileName = str_replace(array(":", "*", "?", "|", "/"), "_", $sUnsafeFileName);

Если текст, используемый для переименования, будет отличаться, вам нужно будет предоставить гораздо больше деталей:
Будет ли текст меняться в зависимости от того, какой пользователь загружает файл?
Будет ли оно отличаться для каждого изображения, независимо от того, кто его загружает?
Что будет определять фактический текст, который используется (на основе имени пользователя?).

Последняя версия 2.1 позволяет пользователю загружать несколько файлов одновременно. Это может повлиять на ваш подход.

Если вы предоставите дополнительную информацию, я посмотрю, смогу ли я найти лучший ответ.


Это означает, что конечный пользователь может переименовать свои изображения? Пользователь может переименовать изображение следующим образом:

Когда они смотрят на изображения в окне браузера файлов, они щелкают правой кнопкой мыши на изображении. "Переименовать" - это одна из опций в контекстном меню.

РЕДАКТИРОВАТЬ: последняя версия CKFinder (2.1) имеет параметр конфигурации, который находится в файле config.js:

config.showContextMenuArrow = true;

этот параметр позволяет пользователю получить доступ к контекстному меню, нажав на стрелку, которая появляется в углу изображения.

Всего хорошего,
Джо

Другие вопросы по тегам