Tutorial: Upload de Arquivos Simples.
Autor: Vitor Luis ! | Publicado: 2012-01-18T09:36:00-02:00


.main {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 12px;
 color: #000000;
}

.note {
    background-color: #54FF9F;
    margin: 30px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
     border: 1px solid #000000;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
}


Como foi dito ontem, vou agora fazer um tutorial de como fazer uploads de arquivos. Quem não leu o artigo sobre a variável reservada $_FILES, leia, para ter uma base do que vai se passar por aqui. Aqui vou usar o exemplo de upload de Fotos.





Primeiramente vamos criar a página HTML cujo vai ter o formulário de Upload.

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Formulario de Upload&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action="process.php" method="POST" enctype="multipart/form-data"&gt;
&lt;label&gt; Arquivo: &lt;/label&gt;&lt;input type="file" name="arquivo"&gt;
&lt;input type="submit" value="Enviar"&gt;
&lt;/form&gt;
&lt;/html&gt;


Agora, vamos para o arquivo process.php, que é o que vai fazer upload do arquivo. Nele, vamos fazer algumas verificações, como o tipo do arquivo e tamanho. por exemplo.

&lt;?php
//Aqui vamos fazer as verificações.
if (is_uploaded_file($_FILES["arquivo"]["tmp_name"])) { 
   //Verificamos se o arquivo foi enviado
   //Se sim, faz algumas verificações
 if ($_FILES["arquivo"]["type"]!="image/png" &amp;&amp; $_FILES["arquivo"]["type"]!="image/gif" &amp;&amp; $_FILES["arquivo"]["type"]!="image/jpg" &amp;&amp; $_FILES["arquivo"]["type"]!="image/jpeg") {
      //Aqui faz a verificação que o tipo do arquivo é uma Imagem, se entrar aqui, isso quer dizer 
      //que o arquivo enviado não é uma imagem
      echo "Imagem Invalida";
 } elseif($_FILES["arquivo"]["size"]&gt;2097152) { 
  //Aqui verificamos se o arquivo é maior que 2MB
  //Lembrando que o $_FILES["size"], retorna o tamanho
  //DO arquivo em bytes, então 2097152 é 2MB
  echo "Imagem Maior que 2MB";
 } else {
      //Caso não pare nos filtros anteriores, faz o upload do arquivo.
      $path = dirname(__FILE__) . "/"  . $_FILES["arquivo"]["name"];

      //Essa variavel path, é pra onde as fotos serão enviadas
      //A função dirname, recupera o valor do um caminho, passando como paramentro
      //A Constante __FILE__ que significa o arquivo atual. Então no final
      //Vamos recueprar o valor do diretório atual do arquivo process.php

       if (move_uploaded_file($_FILES["arquivo"]["tmp_name"], $path)) {
    echo "Arquivo Enviado com Sucesso";
       } else {
    echo "Erro ao enviar o arquivo";
       }
 }

} else {
 echo "Erro ao processar o upload, Arquivo nao foi enviado";
}
?&gt;
Resumindo...

No código PHP, recebemos o arquivo enviado pelo formulário HTML. Fazemos as verificações do tipo do arquivo e do tamanho dele e também usamos a função "is_uploaded_file()" para verficar se o arquivo foi mesmo enviado via HTTP POST, para aí sim, enviarmos o arquivo para o servidor.

Notas: No caso de o arquivo não estar sendo enviado, mesmo estando dentro dos paramentros, deve-se verificar a permissão do diretório. No Linux, deve-se dar a permissão 775 e também colocar o usuário do apache(www-data) como um dos donos com o comando "chown .www-data /diretorio" no diretóio

No Windows, deve dar permissão total na pasta, para poder gravar os arquivos.
Então é isso galera, é assim que se faz um upload simples de arquivo.

Abraços!