Carcleo 4 Denunciar post Postado Maio 23, 2010 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
Crash® 0 Denunciar post Postado Junho 28, 2010 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