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

Publicado por davi vidal 06/11/2006

[ Hits: 9.543 ]

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

Orion - extração e conversão de dados de arquivos texto e CSV

MedUpload 2.0

Conversor de Arquivos.

Leitura de arquivos

Visualizador de Imagens em PHP-GTK2


  

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