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

Como diferenciar imagens repetidas no upload de imagem ?


DeniseAlencar19

Pergunta

Boar tarde pessoal estou fazendo um teste com upload de imagens gravando no banco de dados porem quando cadastro uma imagem com o nome "foto.jpg" e depois cadastro a mesma imagem com o mesmo nome, no banco de dados aparece dois registros com nomes iguais , e na pasta arquivos aparece uma unica imagem gostaria que quando cadastrasse fotos iguais o nome mudasse tipo foto.jpg , foto2.jpg (isso automaticamente) etc vou postar o codigo .


<?php
                   
  $diretorio = "arquivos/";             

  if(!is_dir($diretorio)){  echo "Pasta $diretorio não existe";}else{
    
  $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
    
  for ($controle = 0; $controle < count($arquivo['name']); $controle++){

    $destino = $diretorio."/".$arquivo['name'][$controle];
    $nome_foto = $arquivo['name'][$controle];
    if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){
      
    $sql="INSERT INTO galeria (arquivo) VALUES ('$nome_foto')";
    $qry = mysqli_query($conexao,$sql);

    echo "<head><meta HTTP-EQUIV='refresh' CONTENT='0;URL=index.php'></head>";

    }else{
      echo "Erro ao realizar upload";
    }
    
  }
}



?>

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ao invés de olhar o diretório de imagens, a minha sugestão é olhar o banco de dados e sequenciar as fotos a partir dele, assim

<?php
// mysql:astudy.tbgaleria(idgaleria[int,auto_increment],nomefoto[varchar(45)])             
$diretorio = "imagens";             
if(!is_dir($diretorio)){mkdir($diretorio);} // criar diretório imagens se não existir
if(isset($_FILES['imagem'])){ // rotina para receber imagens
	// para simplificar não coloquei a rotina de validação do arquivo escolhido
	if(is_uploaded_file($_FILES['imagem']['tmp_name'])){
		//busca no banco de dados o nome da última imagem
		$mysqli=new mysqli("localhost","root","","astudy"); // dados do meu servidor
		$query=$mysqli->query("select * from tbgaleria order by nomefoto desc limit 1"); 
		$num_rows=mysqli_num_rows($query);
		if($num_rows==0){$novaimagem="foto";goto prossegue;}
		$row=$query->fetch_assoc();
		$ultimaimagem=$row['nomefoto'];
		$arr=explode("foto",$ultimaimagem);
		$arr=explode(".",$arr[1]);
		if($arr[0]==""){$novaimagem="foto1";} else {$indicador=$arr[0]+1;$novaimagem="foto".$indicador;}
prossegue:
		$path = $_FILES['imagem']['name'];
		$ext = pathinfo($path, PATHINFO_EXTENSION);
		$nomefoto = $novaimagem.".".$ext; // a extensão da imagem vai ser preservada
		if (move_uploaded_file($_FILES['imagem']['tmp_name'], 'imagens/'.$nomefoto)){ 
			$query=$mysqli->query("insert into tbgaleria (nomefoto) values ('$nomefoto')");
			if(!$query){echo "Problema no banco de dados!";echo " insert into tbgaleria (nomefoto) values ('$nomefoto')";exit;}
		echo "Deu tudo certo, foi salvo o arquivo $nomefoto";} else {echo "Nada deu certo!";}}}
echo "<form enctype='multipart/form-data' method=post><input type=file name='imagem'><input type=submit></form>"; // selecionar um arquivo
?>

 

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...