Renomear a imagem enviada com ckfinder
Pergunta
Posso renomear uma imagem que é carregada usando o ckfinder?
Solução
Você usa a versão php do ckfinder? Nesse caso, o seguinte pode ajudar.
Ao fazer o upload de arquivos, você pode remover automaticamente espaços, caracteres com sotaques e tal. Defina "forceascii" como "true" no arquivo config.php:
$config['ForceAscii'] = true;
O código para a configuração "forceascii" é encontrado começando na linha 59 neste arquivo:
ckfinder Core Connector php php5 commandHandler fileUpload.php
if ($_config->forceAscii()) {
$sFileName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sFileName);
}
Para renomear o arquivo conforme o upload, você pode adicionar seu próprio código ao código "forceascii".
Para adicionar algum texto estático ao início ou ao fim:
if ($_config->forceAscii()) {
$sFileName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sFileName);
$sFileName .= "YourTextHere"; // Append your text
$sFileName = "YourTextHere" . $sFileName; // Prepend your text
}
Pouco antes do código ASCII da Force ser uma String Substituir, você pode adicionar sua própria versão de uma String Substituir se isso atingir seus objetivos.
$sFileName = str_replace(array(":", "*", "?", "|", "/"), "_", $sUnsafeFileName);
Se o texto usado para a renomeação variará, você precisará fornecer muito mais detalhes:
O texto variará dependendo de qual usuário está carregando o arquivo?
Varia varia para cada imagem, independentemente de quem a carrega?
O que determinará o texto real usado (com base no nome de usuário?).
A versão mais recente, 2.1 permite ao usuário fazer upload de vários arquivos ao mesmo tempo. Isso pode afetar a abordagem que você adota.
Se você fornecer informações adicionais, verei se consigo uma resposta melhor.
Isso deve permitir que o usuário final renomeie suas imagens? É possível para o usuário renomear uma imagem da seguinte maneira:
Quando eles estão olhando para as imagens na janela do navegador de arquivos, clica com o botão direito do mouse em uma imagem. "Renome" é uma das opções no menu de contexto.
EDITAR: A versão mais recente do ckfinder (2.1) possui uma configuração de configuração que é colocada no arquivo config.js:
config.showContextMenuArrow = true;
Essa configuração permite ao usuário acessar o menu de contexto clicando em uma seta que aparece no canto da imagem.
Fique bem,
Joe