wendelcs Posted December 1, 2011 Report Share Posted December 1, 2011 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 repetirgrato.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()); } Quote Link to comment Share on other sites More sharing options...
0 mJi Posted December 1, 2011 Report Share Posted December 1, 2011 $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. Quote Link to comment Share on other sites More sharing options...
Question
wendelcs
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.