Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Tutorial upload de varias imagens com insert e update no banco

Recommended Posts

TUTORIAL UPLOAD DE VARIAS IMAGENS COM INSERT E UPDATE NO BANCO

JÁ COM PAGINAÇÃO.

 

Bom, certa vez me encontrei nua situação difícil, cuja qual não achava solução nem em sites de inglês, consegui resolver e gostaria de compartilhar com vocês.

Trata-se de UPLOAD DE VARIAS IMAGENS COM INSERT E UPDATE NO BANCO JÁ COM PAGINAÇÃO.

Primeiro é necessário criar uma tabela com pelo menos 6 campos:

ID autoincrement
FOTO  text 
FOTO2 text
FOTO3 text 
FOTO4 text
FOTO5 text
Feita isso, vamos aos códigos: (É claro que podem ser adicionados dados nessa tabela como por exemplo, nome, endereço, tel...)

Multiplos_Uploads.php

<?
$dir="teste_upload/normal/";
$dir_mini="teste_upload/mini/";

$Fotos = $_FILES['Fotos'];

for($i = 0; $i < sizeof($Fotos['name']); $i++){
	
    $Nome    = $Fotos['name'][$i];
    $Tamanho = $Fotos['size'][$i];
    $Tipo    = $Fotos['type'][$i];
    $Tmpname = $Fotos['tmp_name'][$i];
	
	if (!$Nome) { 
				  echo 'Você não enviou nada na posição' . ($i+1) . '<br/>';
                       if ($FotosPost[$i]!="") {$NomesFotos[] = $FotosPost[$i];}
					   else { $NomesFotos[] = ""; }

				 }
	else         {		
	                ereg ("(.*)\.([^.]+)$", $Nome, $partes);
 	                if(($partes[2] != "jpg") and ($partes[2] != "jpeg") and  ($partes[2] != "png") and ($partes[2] != "gif"))	
							{
					
							echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>';
									
									// Faz contagem de enviada com sucesso
									$Conta++;
							}
					else    {    
					
								// Pega extensão do arquivo
								preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $Nome, $ext);
								
								   //  Retira a extensao do nome do arquivo
								$nome_sem_extensao = $Nome;
								$nome_sem_extensao = basename ($nome_sem_extensao,".gif");
								$nome_sem_extensao = basename ($nome_sem_extensao,".jpeg");
								$nome_sem_extensao = basename ($nome_sem_extensao,".jpg");
								$nome_sem_extensao = basename ($nome_sem_extensao,".png");
								
								  //  Retira espaços em branco do nome do arquivo
								$nome_banco = str_replace(" ","_",$nome_sem_extensao);
								
										//Gera um nome único para a imagem
								//$imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1];
								$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

                                         //Diretórios de Gravação das imagens
                                $Caminho = $dir . $imagem_nome;
                            	$Caminho_mini = $dir_mini . $imagem_nome;	

		
								if(move_uploaded_file($Tmpname, $Caminho))			
								{
									echo 'Foto ' . ($i+1) . ' enviada.<br/>';
									// Faz contagem de enviada com sucesso
								   $Conta++;
									///cria a miniatura e faz io move_uploaded_file
													  
						//IMAGEM A SER ABERTA Nesse momento será o $Caminho pois o upload já foi feito e o arquivo temporario apagado
									  
									  //CRIA UMA NOVA IMAGEM
									  if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($Caminho); }
								      else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($Caminho); }
									  else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($Caminho); }
									  else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($Caminho); }
									  //LARGURA
									  $pontoX = ImagesX($imagem_orig);
									  //ALTURA
									  $pontoY = ImagesY($imagem_orig); 
									  
									  //DEFINE OS PARÂMETROS DA MINIATURA
									  $largura = 150;
									  $altura = ($pontoY * $largura) / $pontoX;
									  
									  //CRIA O THUMBNAIL
									  $imagem_fin = imagecreatetruecolor($largura, $altura); 
									  
									  //COPIA A IMAGEM ORIGINAL PARA DENTRO
									  imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); 
									  
									  //SALVA A IMAGEM
									  if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $Caminho_mini ,100);  }
								      else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $Caminho_mini ,100);  }
									  else if ($ext[1] =="gif") { imagegif($imagem_fin, $Caminho_mini ,100);  }
									  else if ($ext[1] =="png") { imagepng($imagem_fin, $Caminho_mini); }

									  $NomesFotos[] = $imagem_nome;
									  //LIBERA A MEMÓRIA
									  imagedestroy($imagem_orig);
									  imagedestroy($imagem_fin);

								  }            
								  else // Erro no envio
								  {
									  echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>';
								  }
							}
				  }
                                          } //FIM DO FOR
			$NomeTodasFotos = implode(';',$NomesFotos);
?>
FormInsert.php

<b>Envio das fotos</b><br />
<? include("../global/conexao.php"); ?>
<?
  if ($acao=="inserir") { ?>
<form action="FormInsert.php?acao=insere" method="post"  enctype="multipart/form-data">
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="file" name="Fotos[]"><br />
<input type="submit" value="OK"/>
</form>
<? } ?>

<?
  if ($acao=="insere") { 
  
  include ("Multiplos_Uploads.php");

  $NomedasFotos = explode(';',$NomeTodasFotos);  
  
  $sql_insere= mysql_query("insert into imoveiscadastrovenda (Foto, Foto2,  Foto3,  Foto4,  Foto5)
                            values ('$NomedasFotos[0]','$NomedasFotos[1]','$NomedasFotos[2]','$NomedasFotos[3]', '$NomedasFotos[4]')
						   ");
  
  if ($sql_insere) {echo "Bão";}
  else {echo "Ruim";}
  
                       }
  ?>
FormUpdate.php

<script>
function AbreImagemGrande(UrlPagI,NameI,Wi,He,scrolling) {
	if (!scrolling) { scrolling = 'auto' }
    PopImagemGrande = window.open(UrlPagI,NameI,'width='+Wi+',height='+He+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no');
}
</script>
<? include("../global/conexao.php"); ?>

<?
function foto2($FotoVer,$ide) {
	   $endereco_mini="teste_upload/mini/";	
		  $endereco_normal="teste_upload/normal/";	
//aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela
if($FotoVer==""){
                 $foto3 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
             }
        else {
//se existir um valor no campo na tabela ele testa se a foto esxiste 'fisicamente' na pasta
              if(file_exists($endereco_mini.$FotoVer)){
				  			
				 if(file_exists($endereco_normal.$FotoVer)){
					 //se existir ele monta a exibição da foto e coloca numa variavel $foto2
					 $foto_end = "<img src='$endereco_mini$FotoVer' border=0 height=50>";				 
					 list($width, $height) = getimagesize($endereco_normal.$FotoVer); 
					 if ($width > 780) {$width = 780;}
					 $foto3 = "<a href=javascript:AbreImagemGrande('Alteracao_ImoveisVenda_Foto.php?Id=$ide','ImpNot','$width','$height')>$foto_end</a>";
				                                           }
                                                       else{
//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$foto3 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
                                                            }
																		   
																		   
                                                        }
                                                    else{					

//se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto
$foto3 = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto</strong></font>";
                                                                                 }
             }
			 return $foto3;
}
?>


<table WIDTH="100%" BGCOLOR="#0080C0">
<?php
if ($acao == "listar"){
//Inicio da lista dos dados
$Sql = mysql_query("select id, Foto, Foto2, Foto3, Foto4, Foto5 from ImoveisCadastroVenda where Baixa = 'N'");
$total = mysql_num_rows($Sql); // Esta função irá retornar o total de linhas na tabela
$lpp = 15; // Especifique quantos resultados você quer por página
$paginas = ceil($total / $lpp); // Retorna o total de páginas
if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada
$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL
$Sql = mysql_query("select id, Foto, Foto2, Foto3, Foto4, Foto5 from ImoveisCadastroVenda where Baixa = 'N' LIMIT $inicio, $lpp");

	if ($total == "0") {?><tr><td colspan=13 align="center" valign="middle" bgcolor="#FFFFFF"><center><font color=red>=>Não foi encontrado nenhum imóvel para a sua pesquiza</font>
</center></td></tr><?php }
	else {?>

<tr><td colspan=13><center>
  <b><font color="#FFFFFF" size=+2>Edição de Imagens</font><br>
  <font color="#FFFF00">Para alterar as imagens, clike em alterar </font></b>
</center></td></tr>
<tr BGCOLOR="#CCCCCC">
<td><div align="center"><b>Id</b></div></td>
<td><div align="center"><b>Foto</b></div></td>
<td><div align="center"><b>Foto2</b></div></td>
<td><div align="center"><b>Foto3</b></div></td>
<td><div align="center"><b>Foto4</b></div></td>
<td><div align="center"><b>Foto5</b></div></td>
<td><div align="center"><b>Alterar</b></div></td>
<?php
while(list($id, $Foto, $Foto2, $Foto3, $Foto4, $Foto5) = mysql_fetch_row($Sql)) {
echo "
      <tr BGCOLOR=#FFFFCC>
      <td><font face=Arial size=-2><b>". $Id ."</b></font></td>
      <td><font face=Arial size=-2><b>". foto2($Foto,$id) ."</b></font></td>	  	  
      <td><font face=Arial size=-2><b>". foto2($Foto2,$id) ."</b></font></td>	  	
      <td><font face=Arial size=-2><b>". foto2($Foto3,$id) ."</b></font></td>	  	
      <td><font face=Arial size=-2><b>". foto2($Foto4,$id) ."</b></font></td>	  	
      <td><font face=Arial size=-2><b>". foto2($Foto5,$id) ."</b></font></td>	  	
      <td align=center><a href='?acao=alterar&id=". $id ."'><img border=0 src=../figuras/alterar.ico></a></td>
      </tr>
	";
}
if($pagina > 0) {
   $menos = $pagina - 1;
   $url = "$PHP_SELF?acao=listar&pagina=$menos";
   echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior
}
for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas
   $url = "$PHP_SELF?acao=listar&pagina=$i";
   echo " | <a href=".$url.">$i</a>";
}
if($pagina < ($paginas - 1)) {
   $mais = $pagina + 1;
   $url = "$PHP_SELF?acao=listar&pagina=$mais";
   echo " | <a href=".$url.">Próxima</a>";


}
}}
  //Fim do envio dos dados
?></table>
				  
  
<?
  if ($acao=="alterar") {  ?>  
   <b>Envio das fotos</b><br />
   
    <form action="FormUpdate.php?acao=altera&id=<?=$id;?>" method="post"  enctype="multipart/form-data">
<?  
 $sql = "Select id, Foto, Foto2, Foto3, Foto4, Foto5 from imoveiscadastrovenda where id=$id";
          $sql1 = mysql_query($sql) or die ("Select mau feito");
      
          $nome_das_fotos = mysql_fetch_array($sql1);
      
          $Id = $nome_das_fotos['id'];
		  $Foto[1] = $nome_das_fotos['Foto'];
          $Foto[2] = $nome_das_fotos['Foto2'];
          $Foto[3] = $nome_das_fotos['Foto3'];
          $Foto[4] = $nome_das_fotos['Foto4'];
          $Foto[5] = $nome_das_fotos['Foto5'];		

		  
	      $endereco_mini="teste_upload/mini/";	
		  $endereco_normal="teste_upload/normal/";	

          for ($i=1; $i<6;$i++)	{	  
			$foto_mini = $endereco_mini.$Foto[$i];
			$foto_normal = $endereco_normal.$Foto[$i];
	  
			//aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela

						///É necessario enviar junto ao file, um campo hidden contendo o valor dos campos das fotos no banco de dados pois, se não enviar, haverá sobscrição no banco e a imaghem que já esta cadastrada terá seu valor apagado
			echo "
				  <input type='file' name='Fotos[]'>
				  <input type='hidden' name=FotosPost[] value='$Foto[$i]'> 
				  				  ";
			echo  foto2($Foto[$i],Id)."<br>";

                              		 }//Fimdo for
?>
 <input type="submit" value="OK"/>
    </form>
<? 	 } ?>

<?
  if ($acao=="altera") { 
  
  include ("Multiplos_Uploads.php");

  $NomedasFotos = explode(';',$NomeTodasFotos);  

  $sql_insere= mysql_query("update imoveiscadastrovenda set Foto='$NomedasFotos[0]', Foto2='$NomedasFotos[1]', Foto3='$NomedasFotos[2]', Foto4='$NomedasFotos[3]', Foto5='$NomedasFotos[4]' where id=$id");
  
  if ($sql_insere) {echo "Bão";}
  else {echo "Ruim";}
  
                       }
  ?>
Bom, é isso ai.

Qualquer dúvida é só perguntar.

Espero ter colaborado com alguém.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo Carcleo !

 

Estou procurando algo para usar para com a seguinte finalidade:

 

tenho uma pagina em html onde listo algumas imagens mas toda vez que preciso enviar alguma nova imagem tenho que salvar e levar para casa e depois usar um prog de FTP para enviar a mesma e ainda tenho que alterar a pagina.

O que estou precisando é o seguinte uma forma de enviar a imagem se possivel de qualquer lugar pela proprio site tipo um campo de uploand para imagem com opção de colocar um pequeno texto explicativo da imagem você teria algo assim ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.