Como fazer upload de arquivos via PHP?

De Wiki
Ir para: navegação, pesquisa

O exemplo abaixo demonstra como efetuar upload utilizando um formulário HTML:


1° passo: Criando o formulário de envio

Crie um arquivo HTML com o nome upload.html ou insira o código em seu formulário já existente, conforme abaixo.

Formulariophp.jpg


O código do formulário acima é o seguinte:

<html> 

<body>

     <form action="envia.php" enctype="multipart/form-data" method="POST">
     Selecione o arquivo desejado: <input name="arquivo" size="20" type="file"/>
     <input type="submit" value="Enviar"/>
     </form>

</body>

</html>


2° passo: Criando o script PHP

Crie um arquivo chamado envia.php com o seguinte conteúdo:

<html>

<body>

<?php

     /* Insira aqui a pasta que deseja salvar o arquivo. Ex: imagens */
  
     $uploaddir = 'imagens/';
  
     $uploadfile = $uploaddir . $_FILES['arquivo']['name'];
  
     if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploadfile)){
  
     echo "Arquivo Enviado";}
  
     else {echo "Houve um problema no upload do arquivo.";}
  
?>

</body>

</html>


3º passo: Criando o arquivo .htaccess

Para que seja permitido o envio de arquivos maiores que 12MB (configuração padrão em nossos servidores,) é necessário a criação do arquivo .htaccess para alterar as diretivas do PHP.

Crie um arquivo chamado .htaccess com o seguinte conteúdo:


php_value post_max_size 50M

php_value upload_max_filesize 50M

php_value max_execution_time 90


NOTA: O exemplo acima irá permitir o envio de arquivos com até 50MB e a execução do upload poderá ocorrer em até no máximo 90 segundos.


4º passo: Testando o funcionamento

Envie os arquivos upload.html, envia.php e .htaccess para a raiz do seu site e teste acessando:

http://<seu_domínio>/upload.html


O script irá gravar o arquivo selecionado para upload na mesma pasta que foi definida através do arquivo envia.php.