[RESOLVIDO]Mudar nome do arquivo antes do upload

Olá, bom dia.

Eu preciso mudar o nome do arquivo durante o upload do arquivo para o servidor

Eu utilizo o tipo (Domumento - Nome do arquivo). Alguém sabe como fazer a troca do nome antes do upload, para que o arquivo chegue no servidor com o nome que eu desejar?

Abraços
Marcelo

somente depois do upload, vc pode renomear o mesmo no evento onvalidatesucess ou onvalidate.

Blz
Funcionou.
Valeu!

Bom dia.
Adicionando o que fiz para resolver o problema:

no evento onScriptInit eu recuperei o diretório onde o arquivo seria armazenado com

$dir_app = $_SESSION['scriptcase']['app_form_tbl_documentos']['glo_nm_path_doc']."/";

Método usado para retirar os acentos

/*
 * Método responsável por retirar letras acentuadas
 * @author Marcelo Gomes (MGSistemas - marcelo.gomes@mgsistemas.com.br)
 * @copyright 2014 - MG Consultoria em Informática
 * @param str - string a ser convertida
 * return str - string convertida
 */

function mg_utils_retiraAcento($str)
{
   $str = str_replace("á","a",$str);
   $str = str_replace("Á","a",$str);
   $str = str_replace("é","e",$str);
   $str = str_replace("É","e",$str);
   $str = str_replace("ç","c",$str);
   $str = str_replace("Ç","c",$str);
   $str = str_replace("ã","a",$str);
   $str = str_replace("Ã","a",$str);
   $str = str_replace("õ","o",$str);
   $str = str_replace("Õ","o",$str);
   $str = str_replace("ê","e",$str);
   $str = str_replace("Ê","e",$str);
   $str = str_replace("ú","u",$str);
   $str = str_replace("Ú","u",$str);
   $str = str_replace("ó","o",$str);
   $str = str_replace("Ó","o",$str);
   $str = str_replace("í","i",$str);
   $str = str_replace("â","a",$str);
   $str = str_replace("Â","a",$str);
   $str = str_replace("Í","i",$str);
   return $str;
}	

No evento onValidadeSucess, implementei o seguinte código que será executado antes do update, assim o arquivo que será submetido ao diretório e ao upload já vai com o nome trocado e ajustado.

	{url_documento} = str_replace(" ","",{url_documento});    // Retira todos os espaços em branco
	{url_documento} = mg_utils_retiraAcento({url_documento}); // Utiliza o método para retirar os caracteres acentuados
1 Curtida

Cara muito bom, parabéns!

Pessoal também estou com este problema, estou precisando renomear o arquivo que está sendo enviado via FTP.

No meu caso por precaução estou usando o tipo de campo: Documento (Banco de Dados).

Alguém tem alguma dica?
Como eu adiciono anexo aqui para que seja avaliado?

http://crm.bhsoft.com.br/exames/renomear_arquivo_upload.pdf

Luiz
A dica que deixei serve para esta situação também.
É só seguí-la.

Olá caso queira uma função bem eficaz e com menos linhas para acento, garanto que não passa nada, kkkkk, segue:

function removerAcento($str)
{
     $a = array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ÿ','Ā','ā','Ă','ă','Ą','ą','Ć','ć','Ĉ','ĉ','Ċ','ċ','Č','č','Ď','ď','Đ','đ','Ē','ē','Ĕ','ĕ','Ė','ė','Ę','ę','Ě','ě','Ĝ','ĝ','Ğ','ğ','Ġ','ġ','Ģ','ģ','Ĥ','ĥ','Ħ','ħ','Ĩ','ĩ','Ī','ī','Ĭ','ĭ','Į','į','İ','ı','IJ','ij','Ĵ','ĵ','Ķ','ķ','Ĺ','ĺ','Ļ','ļ','Ľ','ľ','Ŀ','ŀ','Ł','ł','Ń','ń','Ņ','ņ','Ň','ň','ʼn','Ō','ō','Ŏ','ŏ','Ő','ő','Œ','œ','Ŕ','ŕ','Ŗ','ŗ','Ř','ř','Ś','ś','Ŝ','ŝ','Ş','ş','Š','š','Ţ','ţ','Ť','ť','Ŧ','ŧ','Ũ','ũ','Ū','ū','Ŭ','ŭ','Ů','ů','Ű','ű','Ų','ų','Ŵ','ŵ','Ŷ','ŷ','Ÿ','Ź','ź','Ż','ż','Ž','ž','ſ','ƒ','Ơ','ơ','Ư','ư','Ǎ','ǎ','Ǐ','ǐ','Ǒ','ǒ','Ǔ','ǔ','Ǖ','ǖ','Ǘ','ǘ','Ǚ','ǚ','Ǜ','ǜ','Ǻ','ǻ','Ǽ','ǽ','Ǿ','ǿ',' ','/','(',')','.'); 
     $b = array('a','a','a','a','a','a','ae','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','s','a','a','a','a','a','a','ae','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y','a','a','a','a','a','a','c','c','c','c','c','c','c','c','d','d','d','d','e','e','e','e','e','e','e','e','e','e','g','g','g','g','g','g','g','g','h','h','h','h','i','i','i','i','i','i','i','i','i','i','ij','ij','j','j','k','k','l','l','l','l','l','l','l','l','l','l','n','n','n','n','n','n','n','o','o','o','o','o','o','oe','oe','r','r','r','r','r','r','s','s','s','s','s','s','s','s','t','t','t','t','t','t','u','u','u','u','u','u','u','u','u','u','u','u','w','w','y','y','y','z','z','z','z','z','z','s','f','o','o','u','u','a','a','i','i','o','o','u','u','u','u','u','u','u','u','u','u','a','a','ae','ae','o','o','-','/','','','-');   
     return strtolower(str_replace($a, $b, $str)); 	
}

Apenas para complementar, alguns caracteres devem ser trocados. Exemplo está trocando . por -
e isso para upload não vai ser bom…
tirem a última string…

Pessoal, alguém sabe me dizer se isto funciona para campos MULTI-UPLOAD?

Pessoal mais uma pergunta.

Depois de executar essas modificações, está aparecendo a mensagem de erro: Undefined variable: sKeepImage

Alguém tem alguma sugestão?

Bom dia, estou tendo problemas para fazer renomear o arquivo. A função acima funcionou perfeitamente para renomear ao salvar no banco, porém o arquivo que é salvo fisicamente no servidor continua com o nome original, com espaços e acentos.

Faltou algo na orientação acima para que funcione corretamente?

Obrigado

O arquivo físico deve ser renomeado pelo comando rename, rename(“caminho-completo/diretorio/arquivo-ori.extensao”,“caminho-completo/diretorio/nome-novo.extensao”);
Pode ser usado no mesmo método que renomeia no bd, eu prefiro fazer com if para garantir que irá renomear os 2, exemplo:
if(rename(“caminho-completo/diretorio/arquivo-ori.extensao”,“caminho-completo/diretorio/nome-novo.extensao”))
{
aqui a query para atualizar o arquivo no bd.
}

Para arquivos físicos, se apagar pelo SC também tenho que excluir “manualmente” no evento onAfterDelete, o SC só apaga o nome do arquivo do BD, ou existe alguma configuração para que o arquivo físico seja eliminado do disco ?

unlink(“caminho-completo/diretorio/nome-novo.extensao”);

Obrigado Rodrigo,

Não seria interessante se no campo da app tivesse opção para marcar Sim / Não ?
Fica aí uma para NM !

Muito obrigado pela ajuda Rodrigo.

Desculpe minha ignorância como faço para excluir o arquivo no disco e o nome no banco usando o unlink???

Olá joeltonsilva. unlink exclue o arquivo, para excluir do banco basta marcar o campo como Apagar (checkbox) ou fazer update via query zerando o campo

Quanto a apagar no banco ok… mas como utilizar o unlink para apagar simultâneamente com o banco…???