Renomear Arquivo No Upload

Notei recentemente a ausência do recurso para renomear arquivos no momento do upload, acredito que facilitaria muito no momento do desenvolvimento. Notei que existem algumas soluções pelo fórum, mas nada como uma boa solução nativa!

Olá Khayo,

Tambem anseio por uma solução nativa para renomear anexos, Já passei muito raiva com isso, atualmente uso um método que tem funcionado, mas para cada aplicação tenho que adaptar o método. Segue exemplo.

metodo alterar_anexo()
chame após OnAfterInsert e OnAfterUpdate


 $extensao = array_reverse(explode(".",({anexo}));
 $ext = $extensao[0];  

$caminhocompleto_nomearquivo_old = "/var/www/anexos/".{anexo};
$arquivo_novo = {codigo}.".".$ext;
$caminhocompleto_nomearquivo_new =  "/var/www/anexos/".$arquivo_novo;
rename($caminhocompleto_nomearquivo_old, $caminhocompleto_nomearquivo_new);
		
$update_table  = 'nometabela';    
$update_where  = "pk_documento= '".{pk_documento}."'"; 
$update_fields = array(  
     "anexo = '".$arquivo_novo."'",
     
 );

$update_sql = 'UPDATE ' . $update_table
    . ' SET '   . implode(', ', $update_fields)
    . ' WHERE ' . $update_where;
sc_exec_sql($update_sql);

Erich, estou implementando a sua solução e apanhando bastante kkkkk não sou programador, só um fução kkkkk
Consegui adaptar tudo aqui pro meu sistema, mas estou apanhando na hora de localizar o arquivo e renomear. Não entendi o que é o caminho completo, se é completo em relação a raiz do servidor ou a raiz do diretório web ou a raiz da pasta onde a aplicação se encontra.

Na verdade, tentei todas essa alternativas e não consegui kkkkk

Use dois pontos seguidos para ir navegando nas pastas. Veja exemplo abaixo

public_html
sistema
meuformulario (esta a aplicação onde está implementando a solucção rename)
doc (aqui onde fica o arquivo que deseja renomear)

Vamos lá montar o caminho para chegar em doc:
“…/…/doc/”

cada dois pontos e barra sobe um nível: “…/” chega em sistema, “…/…/” chega em public.
depois é só ir digitando o caminho pra chegar nas pastas de nível mais baixo/