wendelcs Postado Dezembro 1, 2011 Denunciar Share Postado Dezembro 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()); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Dezembro 1, 2011 Denunciar Share Postado Dezembro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.