Jump to content
Fórum Script Brasil
  • 0

Renomear imagem no upload PHP


wendelcs

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...