Upload de arquivos e validação de tipo do mesmo

Publicado por davi vidal 06/11/2006

[ Hits: 9.898 ]

Homepage: https://linkedin.com/in/davividal

Download imagens.php




Pequeno script para enviar imagens para uma página da WEB e cadastrá-las em um banco de dados relacionando com produtos.

  



Esconder código-fonte

<?php

define("IMG","imagens/");

function enviar_fotos($n)
{
   $consulta="SELECT MAX(id) FROM produtos";
   $resultado=mysql_query($consulta);
   $tiID=mysql_fetch_array($resultado);
   $pID=$tiID[0];
   
   for($i=0;$i<$n;$i++)
   {
       if (is_uploaded_file($_FILES["foto$i"]['tmp_name']))
       {
          echo "<br><b>Foto #".($i+1)."</b><br>";
          
           $nfoto="foto$i";
           
         $size = $_FILES[$nfoto]['size'];
   
           if ($size > 1000000)
           {
               echo 'Arquivo muito grande. Por favor tente novamente.';
           }
   
           $cFT="SELECT MAX(id) FROM fotos WHERE id_imovel='$pID'";
           $rFT=mysql_query($cFT) or die(mysql_error());
   
           if(mysql_num_rows($rFT) or die(mysql_error()))
           {
               $nFT=mysql_fetch_array($rFT);
               $mFT=$nFT[0];
               $mFT++;
           }
           else
           {
               $mFT=0;
           }
           
           //$tipo=;
           $tipo=exif_imagetype($_FILES[$nfoto]['tmp_name']);
           $valido=true;

           if (eregi("jpeg$",$tipo))
           {
              $extensao="jpg";
           }
           elseif (eregi("gif$",$tipo))
           {
              $extensao="gif";
           }
           elseif (eregi("tif[f]$",$tipo))
           {
              $extensao="tif";
           }
           elseif (eregi("png$",$tipo))
           {
              $extensao="png";
           }
           else
           {
              print_r($_FILES[$nfoto]);
              $msg ="<br><center>Tipo de arquivo do arquivo $nfoto inválido!<br>";
              $msg.=$_FILES[$nfoto]['type']."</center><br>";
              
              erro($msg,false);
              $valido=false;
           }
   
           $_FILES[$nfoto]['name']='i'.$pID.'f'.$mFT.'.'.$extensao;
   
           if ($valido)
           {
               if (move_uploaded_file($_FILES[$nfoto]['tmp_name'],IMG.$_FILES[$nfoto]['name']))
               {
                   echo '<br>Arquivo enviado!<br>Informações:<BR>';
   
                   $insercao="INSERT INTO fotos(id_prod,ext) VALUES('$pID','$extensao')";
                   $inserir=mysql_query($insercao);
               }
               else
               {
                   echo '<br>Ocorreu um erro ao enviar o arquivo<BR>Informações:<BR>';
               }
   
               print_r($_FILES[$nfoto]);
               echo "<center><br><img src=\"".IMG.$_FILES[$nfoto]['name']."\"><br></center>";
           }
           
           echo "<hr>";
       }
   }
}

function erro($mensagem,$grave)
{
   echo "<center>$mensagem</center>";
   
   if ($grave)
   {
      exit;
   }
}

?>

Scripts recomendados

Função para formatar tamanho de arquivo

Upload de arquivos com barra de progresso muito util

Gerando arquivo PDF com PHP usando mPDF

TFtp

Eliminar Todos os Ficheiros de um Directorio


  

Comentários
[1] Comentário enviado por presto em 17/10/2006 - 10:17h

Esqueci de mencionar: a função que verifica o tipo de arquivo (para checar se é mesmo uma imagem) pode (e deve) ser melhorada. :)
Por favor, me ajudem a melhorar essa coisa! \o/

[2] Comentário enviado por presto em 29/06/2012 - 12:20h

LOL! Que vergonha desse código 6 anos depois... :P


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts