Sistema de upload de imagens em PHP

Vou mostrar como criar um sistema de upload de imagens simples em php, que você poderá colocar em seu site ou projeto.

Vão ser dois arquivos, o primeiro onde ficará o formulário de envio, e o outro, o php, que recebera a imagem e ira salva-la.

upload.html

<form id="form1" name="form1" method="post" action="enviando.php" enctype="multipart/form-data">
   
   <input name="arquivo" type="file" id="arquivo" size="50" />

   <input type="submit" name="button" id="button" value="Enviar" />

</form>

Nesse arquivo, foi criado um form que enviará as imagens para o outro arquivo.
Então na primeira linha está criado e configurado o form; usando o 'method post' para enviar os arquivos; seu action está configurado para enviar para o enviando.php, o arquivo que vai realmente salvar as imagens enviadas. Uma coisa que não pode ser esquecida é de definir o enctype como multipart/form-data, e caso não coloque, os arquivos não serão enviados.

Na linha 3 foi criada um input com o nome e id de 'arquivo', o nome desse input será muito usado. Seu type foi definido como file, porque são arquivos que ele ira receber.

Na linha 5 apenas um input type submit, para enviar o que tiver de ser enviado.


Agora vamos criar o arquivo enviando.php, que receberá a imagem e ira salva-la;

enviando.php

<?php

if(is_file($_FILES['arquivo']['tmp_name'])){
 
 $foto = $_FILES['arquivo']['name'];
 
 if(!eregi("^image\/(jpeg|png|gif|pjpeg|jpg)$", $_FILES['arquivo']['type'])){
  
  echo "
  <META HTTP-EQUIV=REFRESH CONTENT='0; URL=upload.html'>
  <script type=\"text/javascript\">
  alert(\"Formato inválido\");
  </script>
  ";
  
 }else{
  
  if(file_exists("fotos/$foto")){
   $a = 1;
   while(file_exists("fotos/[$a]$foto")){
    $a++;
   }
   
   $foto = "[".$a."]".$foto;
   
  }
  
  if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){
   
   echo "
  <META HTTP-EQUIV=REFRESH CONTENT='0; URL=upload.html'>
  <script type=\"text/javascript\">
  alert(\"Erro ao enviar o arquivo.\");
  </script>
  ";
   
  }
 
 }
 
  header("Location: upload.html");
 
}else{
 header("Location: upload.html");
}

?>

Nesse arquivo começamos abrindo as tags de php;
Na linha 3 é feita uma verificação se está sendo enviado um arquivo pelo campo 'arquivo';
Na linha 5 é criada uma variável com o nome de 'foto', e essa variável vai pegar o nome do arquivo;
Da linha 7 a linha 14 é criada outra condição, para rejeitar arquivos de extensões que não sejam as definidas(jpeg, png, gif, pjpeg, jpg);
Na linha 16 tem-se um 'else', para caso a condição acima não seja verdadeira, seu bloco será rodado.
Da linha 18 a linha 24 é criada uma condição, para caso o nome do arquivo já exista dentro do diretório onde ficará as imagens, será adicionado [numero], antes do nome. Por ex: imagem.jpg, [1]imagem.jpg, [2]imagem.jpg...;
Na linha 28 é criada uma condição e ira mover o arquivo para o diretório 'fotos', que tambem deve ser criado e deixado junto aos outros dois arquivos.
Da linha 30 a 35 é uma mensagem que aparecerá caso o arquivo não seja enviado;
Na linha 41 é para caso dê certo, e o arquivo seja enviado, retorne a pagina 'upload.html';
Na linha 44 é para retornar a pagina 'upload.html' caso não tenha nenhum arquivo quando clicado em enviar.

Obs: Não esqueça que deverá ser criado um diretório(pasta) com o nome de 'fotos'(sem aspas) onde elas ficarão.

Download dos arquivos.
Share on Google Plus
    Blogger Comment
    Facebook Comment