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

StackOverflow https://stackoverflow.com/questions/3610695

  •  26-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

$config['ForceAscii'] = true;

Код для настройки «Forceascii» находит начать на линии 59 в этом файле:
CKFinder Core Connector php php5 commenthandler filelupload.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 ASCII представляет собой строку заменить, вы можете добавить свою собственную версию строки, если это будет соответствовать вашим целям.

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

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

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

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


Значит ли это позволить конечным пользователю переименовать свои изображения? Для пользователя можно переименовать изображение следующим образом:

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

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

config.showContextMenuArrow = true;

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top