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

Publicado por davi vidal 06/11/2006

[ Hits: 9.645 ]

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

Conversor de arquivo Excel para um Array

Manipulação de Arquivos XML para OT Server

Manipulação de arquivos CSV para gerar instrução SQL

Upload de arquivos com barra de progresso muito util

Script para fazer upload de arquivos


  

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