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

Publicado por davi vidal 06/11/2006

[ Hits: 9.880 ]

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

Image Class

Eliminar Todos os Ficheiros de um Directorio

Conversor de arquivo Excel para um Array

Gerando um arquivo randômico com PHP

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