Ir para conteúdo
Fórum Script Brasil
  • 0

Renomear imagem no upload PHP


wendelcs

Pergunta

Gostaria que alguém me desse uma força para renomear uma imagem no upload estou usando

esse script que utiliza rand para renomear, gostaria de um modo mais seguro pois o rand pode repetir

grato.

if($_FILES['imagem']['size'] > 0)

{

$numero = rand(000000000,999999999);

$imagem = $numero . ".gif";

move_uploaded_file($foto["tmp_name"], $sTmpFolder . $numero . ".gif");

//grd

tNG_showDynamicThumbnail($sTmpFolder, $sTmpFolder, $numero . ".gif", 500, 400, true);

copy($sTmpFolder . "thumbnails/" . $numero . "_500x400.gif", $sTmpFolder . "grd/" . $numero .".gif");

@unlink($sTmpFolder . "thumbnails/" . $numero . "_500x400.gif");

//peq

tNG_showDynamicThumbnail($sTmpFolder, $sTmpFolder, $numero . ".gif", 120, 90, true);

copy($sTmpFolder . "thumbnails/" . $numero . "_120x90.gif", $sTmpFolder . "peq/" . $numero .".gif");

@unlink($sTmpFolder . "thumbnails/" . $numero . "_120x90.gif");

@unlink($sTmpFolder . $numero . ".gif");

mysql_select_db($database_banco, $banco);

$updateSQL = "INSERT INTO fotos (id_estoque,imagem) VALUES (".$row_estoque['Id_estoque'].",'".$imagem."')";

$Result2 = mysql_query($updateSQL, $usadosnet) or die(mysql_error());

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

$numero = rand(000000000,999999999);
As chances de repetir são quase nulas... Mas você pode gerar o número, conferir se ele já foi usado, e se foi, gerar outro número. Fazer isso até gerar um número que não foi usado. Use uma função para isso. Exemplo:
function detectaIguais($diretorio, $numero){
    $ptr = opendir($diretorio);
    while($nome_itens = readdir($ptr))
        if(($nome_itens[0] != '.') && (!is_dir($nome_itens)))
                if($nome_itens == $numero."gif")
                       return(1);
    return(0);
}
Recebe o diretório e o número, Percorre os ítens do diretório fazendo verificações. Se encontra algum arquivo que possui o número como nome (e gif como extensão), retorna 1. Senão, retorna 0. Para ir gerando números randômicos até gerar um que não existe...
do{
       $numero = rand(000000000,999999999);
} while(detectaIguais($sTmpFolder, $numero));

Você também pode ir gerando números consecutivos... 1, 2, 3, 4...

Basta pegar os nomes dos arquivos , ordenar, e gerar o número consecutivo ao último nome já existente.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...