Solucionando o erro upload_max_filesize

Este erro é bastante comum no PHP. Dessa forma, o erro The uploaded file exceeds the upload_max_filesize significa que você está tentando enviar um arquivo para o servidor, porém este arquivo possui um tamanho superior ao limite, estabelecido pela diretiva  upload_max_filesize no PHP.INI.

Por exemplo, a mensagem de erro completa normalmente é

Error: The uploaded file exceeds the upload_max_filesize directive in php.ini.

Sendo assim, para solucionar o problema, basta aumentar as diretivas upload_max_filesize e post_max_size na configuração do PHP. Em um servidor de hospedagem de sites, as configurações do PHP podem ser editadas pelo painel de controle cPanel.

Antes de resolver, vale entender que três diretivas do PHP trabalham juntas — e mexer só numa costuma não resolver:

Diretiva O que controla Regra prática
upload_max_filesize O maior arquivo que pode ser enviado. Defina acima do seu maior arquivo.
post_max_size O tamanho total do envio (POST). Igual ou maior que o upload_max_filesize.
memory_limit A memória que um script PHP pode usar. Pelo menos igual ao post_max_size.

A regra de ouro: o post_max_size deve ser igual ou maior que o upload_max_filesize, porque o arquivo é enviado dentro de uma requisição POST. Se o post_max_size for menor, o upload falha mesmo depois de você aumentar o upload_max_filesize. Sempre ajuste os dois juntos.

Cada uma dessas diretivas tem seu próprio limite — veja também como ajustar o limite de memória do PHP e o tempo máximo de execução. Outro erro de PHP comum, mas de código e não de limite, é o cannot modify header information / headers already sent.

Como verificar o limite atual

No WordPress, vá em Mídia → Adicionar nova e veja o “Tamanho máximo de upload” no rodapé do enviador, ou em Ferramentas → Saúde do site → Informações → Manipulação de mídia.

Onde fica o upload_max_filesize no WordPress

Em qualquer site, você pode criar um arquivo com <?php phpinfo(); ?> e procurar por upload_max_filesize. Anote o valor para confirmar a mudança depois.

Função phpinfo() mostrando o upload_max_filesize

Solucionando o erro Error: The uploaded file exceeds the upload_max_filesize directive in php.ini.

Solucionando o erro no painel de controle cPanel

No painel cPanel, o caminho mais simples hoje é o MultiPHP INI Editor. Acesse o painel de controle e, na seção Software, clique em MultiPHP INI Editor. Selecione o domínio desejado no menu, localize as diretivas upload_max_filesize e post_max_size, aumente os dois valores (deixando o post_max_size igual ou maior), e clique em Apply (Aplicar). O cPanel grava a alteração automaticamente, sem precisar editar arquivos.

(Em versões mais antigas do cPanel, o mesmo ajuste fica em Select PHP Version → Options.)

Alterando upload_max_filesize e post_max_size no MultiPHP INI Editor do cPanel

Solucionando o erro no painel de controle DirectAdmin

Em um servidor de Hospedagem compartilhada com painel DirectAdmin, você pode realizar as configurações do PHP através do painel de controle do DirectAdmin. Também é possível instalar módulos, extensões e alterar a versão do PHP através do painel DirectAdmin. Portanto, seguindo esse passo a passo você poderá solucionar o erro de upload_max_filesize através do painel DirectAdmin.

Inicialmente, acesse o seu Painel de Controle do DirectAdmin.

Painel de Controle do DirectAdmin

No menu lateral selecione “Extra Features” (ou “Recursos extras”). Em seguida, selecione a opção “Select PHP version” (ou “selecionar versão do PHP”).

Selecione a opção "Select PHP version" no menu lateral do DirectAdmin

Após carregar o painel de configurações do PHP, selecione a opção “options” (ou “opções”).

Selecione a opção "Options" no painel de configuração do PHP

Alterando o valor das diretivas post_max_filesize e upload_max_filesize

Nesta aba de opções, você pode observar que há diversas diretivas de configuração do PHP. Entre eles, você poderá encontrar as diretivas upload_max_filesize e post_max_filesize. Observe que eles vão apresentar os valores que estão configurados logo ao lado. Portanto, alterando esses valores para valores maiores, podem resolver o problema do erro de upload_max_filesize.

Painel de configurações de diretivas do PHP, resolva o erro do upload_max_filesize alterando as diretivas.

Para alterar o valor de post_max_filesize, clique sobre o valor ao lado da diretiva.

clique sobre o valor da diretiva post_max_size

Em seguida, selecione o valor desejado.

Altere a diretiva post_max_size para resolver o erro de upload_max_filesize

Para alterar o valor de upload_max_filesize, assim como no anterior, clique sobre o valor ao lado desta diretiva.

Clique sobre o valor da diretiva upload_max_filesize

Em seguida, selecione o valor desejado.

Altere o valor da diretiva para resolver o erro de upload_max_filesize

Pronto! O erro de upload_max_filesize do PHP estará solucionado!

Alterando pelo arquivo .htaccess

Em servidores Apache, você pode aumentar os limites pelo arquivo .htaccess na raiz do site, adicionando:

php_value upload_max_filesize 64M php_value post_max_size 64M php_value memory_limit 128M
⚠️
Atenção

Se aparecer um erro 500 depois de adicionar essas linhas, seu servidor roda PHP como CGI/FPM, onde o php_value no .htaccess não é permitido. Remova as linhas para restaurar o site e use o painel de controle. Servidores Nginx também não usam .htaccess.

Se necessário, consulte também este artigo sobre o Erro 500.

No WordPress (wp-config.php)

Se o erro acontece num site WordPress, você também pode tentar definir os limites no arquivo wp-config.php. Acima da linha /* Isso é tudo, pode parar de editar! */, adicione:

@ini_set( 'upload_max_filesize', '64M' ); @ini_set( 'post_max_size', '64M' ); @ini_set( 'memory_limit', '128M' );

Isso funciona em parte das hospedagens (depende de como o PHP lê a diretiva). Se não surtir efeito, use o painel de controle ou contate o suporte.

Hospedagem WordPress que você controla

Chega de brigar com limites de upload travados. Na Homehost você ajusta upload_max_filesize, post_max_size e memória pelo painel — e conta com suporte em português quando precisar.

Ver planos de hospedagem WordPress

Perguntas frequentes

O que significa o erro “the uploaded file exceeds the upload_max_filesize directive in php.ini”?
Significa que o arquivo que você está enviando é maior que o tamanho máximo permitido pelo servidor para uploads via PHP, definido pela diretiva upload_max_filesize no arquivo php.ini. É um limite do servidor, não do WordPress — por isso a solução é aumentar esse valor na configuração do PHP.
Como aumentar o limite de upload do PHP?
Use o método que sua hospedagem permitir: pelo painel de controle (MultiPHP INI Editor no cPanel ou Options no DirectAdmin), editando o php.ini via SSH, adicionando linhas php_value no .htaccess (apenas Apache), ou via wp-config.php no WordPress. Aumente sempre o post_max_size junto. Em hospedagem compartilhada, o painel costuma ser o caminho mais fácil.
Aumentei o upload_max_filesize mas o erro continua. Por quê?
Os motivos mais comuns: você aumentou o upload_max_filesize mas não o post_max_size (que precisa ser igual ou maior), sua hospedagem ignora o php.ini por site, ou você editou o .htaccess num servidor que roda PHP como CGI/FPM (o que gera erro 500 em vez de funcionar). Tente outro método ou contate o suporte.
Qual a diferença entre upload_max_filesize e post_max_size?
O upload_max_filesize define o tamanho do maior arquivo que pode ser enviado. O post_max_size define o tamanho total da requisição POST, que inclui o arquivo e outros dados do formulário. Como o arquivo é enviado dentro do POST, o post_max_size precisa ser igual ou maior que o upload_max_filesize, ou o upload falha.
Como verificar o limite de upload atual?
No WordPress, vá em Mídia → Adicionar nova e veja o “Tamanho máximo de upload” no rodapé, ou em Ferramentas → Saúde do site → Informações → Manipulação de mídia. Em qualquer site, você pode criar um arquivo com <?php phpinfo(); ?> e procurar por upload_max_filesize.

Conclusão

O erro upload_max_filesize é um dos mais simples de resolver quando você entende que é um limite do servidor, não do WordPress. Basta aumentar o upload_max_filesize — e o post_max_size junto — pelo painel de controle (cPanel ou DirectAdmin), pelo php.ini via SSH, pelo .htaccess ou pelo wp-config.php, conforme sua hospedagem permitir. Depois, confirme o novo limite em Mídia → Adicionar nova. Em hospedagem compartilhada, o painel de controle ou um contato rápido com o suporte costuma ser o caminho mais veloz. E se você se vê constantemente esbarrando em limites que não consegue ajustar, vale considerar uma hospedagem que te dê controle real sobre as configurações do PHP — como os planos de hospedagem WordPress da Homehost.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Gustavo Gallas

Gustavo Gallas

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!