Переименовать изображение, загруженное с помощью CKFinder - PullRequest
5 голосов
/ 31 августа 2010

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

1 Ответ

6 голосов
/ 14 сентября 2011

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

При загрузке файлов вы можете автоматически удалять пробелы, символы с акцентами и тому подобное.Установите для ForceAscii значение true в файле config.php:

$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
    }

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

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

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

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

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


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

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

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

config.showContextMenuArrow = true;

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

Будь здоров,Джо

...