PHP - Upload de arquivos para um site
Anderson Irias - 03/04/2021
Com o PHP, podemos criar aplicações Web para diversos propósitos. Assim temos algumas funcionalidades, que podem ser comuns em diversos tipos de projetos. Neste artigo, veremos a funcionalidade de realizar o upload de arquivos para um site, utilizando o PHP.
Formulário HTML
O primeiro passo para realizarmos o upload de um arquivo, para o servidor com o PHP e o formulário HTML que irá submeter o arquivo pelo método POST. Este formulário HTML é o frontend em que o usuário vai adicionar o arquivo, e o mesmo será enviado ao backend PHP utilizando o método POST.
<!DOCTYPE html>
O formulário acima é bem simples, utilizei uma estrutura básica de HTML e a tag form. A observação é que para o formulário conseguir enviar os arquivos para o backend, precisamos adicionar: enctype="multipart/form-data". Nosso formulário terá a seguinte aparência.

Backend PHP
Após criar o formulário HTML vamos criar nosso Backend em PHP. O processo de upload de arquivos com o PHP é bem simples. Vamos utilizar os valores das Superglobals:
- $_SERVER
- $_FILES
Superglobals são variáveis PHP integradas que sempre estão disponíveis para uso. Também vamos utilizar as funções:
- basename - Retorna o nome do arquivo do caminho especificado.
- move_uploaded_file - Move um arquivo de upload para um novo local.
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $uploadfile = './uploads/' . basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { exit("Upload realizado com sucesso."); } exit("Falha o realizar upload de arquivo."); } ?>
No código acima primeiro verificamos se a requisição é do tipo POST, essa informação está disponível na Superglobal: $_SERVER. Depois criamos o nome que o arquivo terá no servidor, concatenando o diretório onde o arquivo ficará com o nome do arquivo disponível na Superglobal: $_FILES. Usamos a função: basename para pegar o nome do arquivo.
Por último utilizamos a função: move_uploaded_file para mover o arquivo para o diretório definitivo.
Utilização do upload de arquivos
Para utilizarmos o exemplo primeiro vamos criar o diretório: uploads, que é onde ficarão os arquivos.

Para rodar o exemplo utilizei o servidor Web de desenvolvimento que o PHP disponibiliza.
php -S localhost:8080
Observações importantes
Deixo duas observações importantes, na hora de realizarmos o upload de arquivos para o servidor.
permissões
A primeira é verificar as permissões no diretório para onde será feito o upload dos arquivos. Veja no artigo: Entendendo permissões de arquivos e diretórios no Linux, sobre permissões em diretórios e arquivos.
Upload MAX Filesize
A segunda é verificar o tamanho máximo em MB de upload, que está configurado no PHP. Esta configuração é a upload_max_filesize que normalmente fica no arquivo: php.ini.