Como corrigir a falha de upload de arquivos no WPForms
O que é o upload de arquivo no WPForms que não funciona?
O campo File Upload do WPForms permite que o visitante anexe arquivos ao enviar um formulário, como um currículo, uma foto ou um PDF. Por padrão os arquivos ficam em wp-content/uploads/wpforms/ ou na Biblioteca de Mídia, se essa opção estiver ligada. A falha de upload acontece quando o arquivo e barrado na validação do campo (tipo ou tamanho) ou quando o envio via AJAX do estilo Moderno não completa, e o formulário para no botão de enviar sem registrar a entrada.
Como identificar
- Ao escolher o arquivo aparece a mensagem ‘File type is not allowed’ (ou ‘Tipo de arquivo não permitido’) logo abaixo do campo File Upload.
- Ao tentar enviar surge ‘File exceeds the max size allowed’ ou ‘O arquivo excede o tamanho máximo permitido’, mesmo com um arquivo aparentemente pequeno.
- No estilo Moderno (arrastar e soltar) a barra de progresso trava em meio caminho e o formulário nunca passa do botão Enviar.
- O formulário envia, mas a entrada chega em WPForms -> Entradas sem o anexo, ou o link do arquivo aponta para um arquivo de 0 KB.
Antes de começar: Nunca adicione php, phtml, phar, js ou svg a lista de extensões permitidas: aceitar esses tipos no upload público abre porta para execução de código no servidor. Mantenha a lista restrita a documentos e mídia e faca backup do site antes de mexer em permissões de pasta.
Como prevenir
- Restrinja a lista de extensões ao mínimo necessário e nunca inclua tipos executaveis como php, phtml, phar ou svg
- Defina o Max File Size do campo com folga abaixo do limite real do servidor para o visitante receber a mensagem do WPForms, e não um erro 413 cru do servidor
- Teste cada formulário com upload como visitante anonimo, em HTTPS e no celular, após atualizar o WPForms, o tema ou o plugin de cache
Causa
- Extensão do arquivo fora da lista do campo File Upload (padrão do WPForms: png, gif, jpg, doc, xls, ppt, pdf, wav, mp3, mp4, mpg, mov, wmv); enviar um zip, csv ou heic sem adicionar a extensão em Allowed File Extensions barra o upload.
- Arquivo acima do limite do servidor: o campo Max File Size do WPForms herda o teto de upload_max_filesize e post_max_size do PHP, e um arquivo maior que esse valor (tipico 2M ou 8M em hospedagem compartilhada) e rejeitado na validação.
- Estilo Moderno (AJAX, arrastar e soltar) falhando por conteúdo misto: o site carrega via HTTPS mas o WPForms aponta um asset em HTTP, e o navegador bloqueia a requisicao do upload.
- Estilo Moderno aberto no Safari ou em navegador interno de app (Instagram, Facebook), que não completam o upload por arrastar e soltar e precisam do estilo Classico.
- Pasta wp-content/uploads/wpforms/ sem permissão de escrita (diferente de 0755 nas pastas) ou um WAF/Cloudflare cortando o POST acima de 100 MB antes de chegar ao PHP.
Como resolver
- Libere a extensão do arquivo no campo: Abra o formulário no WPForms, clique no campo File Upload e, em Opções de Campo, ajuste a lista de extensões permitidas separadas por virgula. Inclua a extensão que o visitante precisa enviar sem espacos extras.
Allowed File Extensions: jpg,jpeg,png,pdf,doc,docx,zip - Confira o limite de tamanho do campo e do servidor: Ainda no campo File Upload, veja o tooltip do Max File Size: ele mostra o teto definido pelo servidor. Se o limite real for baixo, defina um valor menor ou igual ao do servidor e peca ao seu host para elevar as diretivas do PHP.
Max File Size do campo: 10 (MB) Teto do servidor exibido no tooltip = upload_max_filesize do PHP - Troque o estilo de upload para Classico ao depurar: No campo File Upload, abra a aba Avancado e mude o Style de Moderno para Classico. O estilo Classico usa o botão Escolher arquivo e dispensa o AJAX e o arrastar e soltar, o que contorna falhas no Safari e em navegadores internos de apps.
Campo File Upload -> Avancado -> Style: Classico - Verifique HTTPS e conteúdo misto: Abra o formulário, pressione F12 e va na aba Console. Se houver aviso de Mixed Content apontando um asset em HTTP numa página HTTPS, corrija a URL do site para HTTPS em Configurações para destravar o upload via AJAX do estilo Moderno.
Painel WP -> Configurações -> Geral -> Endereco do site (URL): https:// - Cheque a permissão da pasta de uploads: Via FTP ou gerenciador de arquivos, confirme que a pasta de uploads do WPForms existe e tem permissão de escrita. Sem escrita, o arquivo e recebido mas não e gravado, e a entrada chega sem o anexo.
chmod 0755 wp-content/uploads/wpforms Caminho da pasta: wp-content/uploads/wpforms/
APACHE
# .htaccess na raiz do WordPress (servidor Apache)
# Eleva o teto de upload do PHP para o WPForms aceitar arquivos maiores.
# O Max File Size do campo nunca pode passar destes valores.
php_value upload_max_filesize 32M
php_value post_max_size 36M
php_value max_execution_time 300
php_value max_input_time 300
Perguntas frequentes
Por que o WPForms recusa meu arquivo dizendo que o tipo não e permitido
A extensão do arquivo não esta na lista do campo File Upload. Por padrão o WPForms aceita imagens, documentos do Office, PDF, audio e vídeo comuns. Para outros tipos, abra o campo e adicione a extensão na lista Allowed File Extensions, separada por virgula e sem ponto.
O arquivo e pequeno mas aparece a mensagem de tamanho máximo excedido. Por que
O campo Max File Size do WPForms herda o teto de upload_max_filesize e post_max_size do PHP. Em hospedagem compartilhada esse limite costuma ser 2M ou 8M. Veja o tooltip do Max File Size para o valor real e peca ao host para eleva-lo se precisar de arquivos maiores.
O upload trava na metade no estilo de arrastar e soltar. O que fazer
O estilo Moderno envia por AJAX e quebra com conteúdo misto (asset em HTTP numa página HTTPS) ou no Safari e em navegadores internos de apps. Verifique avisos de Mixed Content no console e, para testar, troque o estilo do campo para Classico na aba Avancado.
Onde o WPForms guarda os arquivos enviados
Por padrão os arquivos ficam em wp-content/uploads/wpforms/, fora da Biblioteca de Mídia. Se a opção Armazenar arquivo na Biblioteca de Mídia estiver ligada na aba Avancado do campo, o anexo também aparece em Mídia.
A entrada chegou sem o anexo. O arquivo se perdeu
Geralmente a pasta de uploads do WPForms esta sem permissão de escrita, entao o arquivo e recebido mas não gravado. Confirme via FTP que wp-content/uploads/wpforms existe com permissão 0755 e reenvie o formulário para validar.
Posso permitir upload de arquivos zip ou csv
Sim. Esses tipos são seguros e basta adicionar zip e csv a lista de extensões do campo. Evite incluir tipos executaveis como php, phtml ou svg, que permitem rodar código no servidor e não devem ser aceitos em upload público.
O upload funciona no computador mas falha no celular
Navegadores internos de apps como Instagram e Facebook não completam o upload no estilo Moderno. Oriente o visitante a abrir o link no navegador padrão do celular ou configure o campo no estilo Classico, que usa o seletor de arquivos nativo do aparelho.
Por que arquivos grandes falham mesmo com o limite do WPForms alto
Um proxy como o Cloudflare corta o POST antes de chegar ao PHP. No plano gratuito e Pro do Cloudflare o teto de upload e 100 MB. Acima disso o envio falha independentemente do Max File Size do WPForms e do limite do servidor.














