terça-feira, 29 de março de 2016

PHP - Upload de Arquivos

O Upload de arquivos consiste na seleção de um arquivo qualquer no computador do usuário para ser enviado por um formulário HTML, este formulário envia as informações para uma pagina onde copiamos o arquivo do computador local para uma pasta dentro do servidor onde o site está hospedado. Após o upload podemos compactar, renomear, entre muitas outras funções que o PHP oferece. Crie um arquivo chamado upload.html e coloque dentro o codigo conforme exemplo abaixo. A action do form esta apontando para o arquivo “upload.php”.

Segue nosso arquivo Html:

 <html>   
  <form id="upload" name="upload" enctype="multipart/form-data" method="post" action="upload.php">   
  <p>   
   <label>   
   <input type="file" name="file" id="file" />   
   </label>   
  </p>   
  <p>   
   <input type="submit" name="enviar" id="enviar" value="Enviar arquivo..." />   
  </p>   
  </form>   
  </html>  
Agora vamos criar o arquivo upload.php que fará todo o trabalho. 
  <?php   
  //verificamos se o arquivo foi informado   
  if (isset($_FILES[file])) {   
  $url = "/pasta-uploads/"; //caminho onse será salvo os arquivos   
  $carregar = $_FILES[file][tmp_name]; //arquivo temporario   
  $novo_nome = date('Y-m-d')."_".$_FILES[file][name]; //criamos uma variavel com o novo nome do formato AAAA-MM-DD_nome_arquivo   
   if(move_uploaded_file($carregar,$url)){ //copia o arquivo do computador para o servidor   
    rename($url.$carregar, $url.$novo_nome);//renomeia o arquivo   
    echo "arquivo enviado com sucesso";   
   }else {   
      echo "falha ao carregar arquivo";    
      }   
  } else {   
    echo "Nenhum arquivo foi selecionado!";   
    }   
  ?>   

Verifique que os arquivos deverão "subir" para a pasta setada na variável $url, se por acaso estiver usando/testando um servidor web Windows,talvez precisará informar o caminho completo. 

EX: $url = "C:\xampp\htdocs\pasta_desejada";


É isso ai pessoal, para dúvidas ou sugestões de postagens deixe ai seus comentários e até a próxima.

Nenhum comentário:

Postar um comentário