Erro ao fazer upload de arquivos em PHP: causas e soluções
O erro ao fazer upload de arquivos em PHP é um problema muito comum, principalmente em formulários que enviam imagens, PDFs ou documentos grandes.
Na maioria dos casos, o problema está relacionado a configuração do PHP, permissões de pastas ou validação incorreta do formulário.
Se você também enfrenta erros como PHP Fatal error: Allowed memory size exhausted ou 500 Internal Server Error, veja estes guias:
Principais causas de erro no upload de arquivos em PHP
Formulário sem enctype correto
Para que o upload funcione, o formulário deve conter o atributo
enctype="multipart/form-data".
---
Pasta de destino sem permissão de escrita
O PHP precisa ter permissão para gravar arquivos na pasta de destino.
- Pastas: 755 ou 775
Limites de tamanho no PHP
O PHP possui limites que podem bloquear uploads grandes:
upload_max_filesizepost_max_size
Variável $_FILES vazia
Isso normalmente indica problema no formulário ou limite de tamanho excedido.
---Validação incorreta do arquivo
Extensões ou tipos MIME bloqueados podem impedir o upload.
---Como identificar o erro no upload
Verificar mensagens de erro do PHP
Use:
print_r($_FILES);
O PHP informa o código do erro no índice error.
Ativar exibição de erros
ini_set('display_errors', 1);
error_reporting(E_ALL);
---
Como corrigir erro ao fazer upload de arquivos em PHP
Ajustar configurações no php.ini
upload_max_filesize = 10M
post_max_size = 12M
memory_limit = 128M
---
Validar corretamente o formulário
if (isset($_FILES['arquivo']) && $_FILES['arquivo']['error'] === 0) {
// upload válido
}
---
Usar move_uploaded_file corretamente
move_uploaded_file(
$_FILES['arquivo']['tmp_name'],
'uploads/' . $_FILES['arquivo']['name']
);
---
Garantir existência da pasta de destino
Sempre verifique se a pasta existe antes do upload.
---Erros comuns de upload em PHP
- Arquivo maior que o permitido
- Extensão bloqueada
- Pasta inexistente
- Permissões incorretas
Relação entre erro de upload e erro de memória
Uploads grandes podem gerar erro de memória no PHP. PHP Fatal error: Allowed memory size exhausted .
Veja também: Erro 401 Unauthorized em PHP e APIs: o que é e como resolver . Erro 403 Forbidden em sites PHP: o que é e como resolver . Como resolver erro 500 e 404 em sites PHP (guia completo) .
---Conclusão
Erros ao fazer upload de arquivos em PHP são comuns, mas geralmente fáceis de resolver quando as configurações estão corretas.
Com atenção ao formulário, permissões e limites do PHP, é possível garantir uploads seguros e funcionais em qualquer sistema.