🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir a falha de upload de arquivos no JetFormBuilder

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Falha no upload de arquivo do JetFormBuilder EN: JetFormBuilder file upload failed
Severidade Atenção
Descrição A falha de upload no JetFormBuilder acontece quando o campo Media Field rejeita o arquivo por exceder o limite de tamanho ou de quantidade, por não casar com o ALLOW MIME TYPES configurado, ou por o usuário não ter o nível de USER ACCESS exigido para enviar.

O que é falha de upload de arquivos no JetFormBuilder?

O JetFormBuilder upload falha no envio quando o campo Media Field bloqueia o arquivo do visitante. Esse campo adiciona ao formulário um botão para enviar um arquivo do computador para o WordPress. Segundo a documentação da Crocoblock, o arquivo enviado fica em uma pasta protegida do próprio JetFormBuilder e, com o toggle Insert attachment ligado, pode ser registrado na Biblioteca de Mídia. O campo tem quatro controles que decidem se o envio passa ou e bloqueado: ALLOW MIME TYPES, MAXIMUM SIZE IN MB, MAXIMUM ALLOWED FILES TO UPLOAD e USER ACCESS.

A falha de upload aparece quando uma dessas regras barra o arquivo: o tipo não esta na lista de MIME permitidos, o arquivo passa do tamanho em MB, o número de arquivos ultrapassa o máximo, ou o visitante não tem a permissão definida em USER ACCESS. Acima do campo ainda existem os limites do próprio servidor PHP (upload_max_filesize e post_max_size), que rejeitam o arquivo antes mesmo de o JetFormBuilder validar. O resultado e o formulário que não envia, com mensagem de erro no campo ou falha silenciosa no submit.

Como identificar

  • Ao enviar o formulário, o campo de upload mostra a mensagem ‘File size limit exceeded’ (limite de tamanho de arquivo excedido) e o submit não conclui.
  • Aparece ‘Files limit exceeded’ (limite de arquivos excedido) quando o visitante tenta anexar mais arquivos do que o configurado no campo.
  • O arquivo e recusado sem erro claro porque a extensão não esta no ALLOW MIME TYPES definido no Media Field.
  • Visitantes deslogados não conseguem enviar arquivo, enquanto usuários logados conseguem, indicando restricao de USER ACCESS.
  • Arquivos grandes (acima do limite do PHP) falham com erro de servidor ou o formulário simplesmente recarrega sem registrar o anexo na Biblioteca de Mídia.
Antes de começar: Antes de alterar os limites do PHP ou liberar tipos de arquivo no upload público, teste em um ambiente de staging e faça backup do site. Liberar todos os tipos para qualquer visitante, como alerta a documentação da Crocoblock, expoe o site a spam e a arquivos maliciosos, entao restrinja o ALLOW MIME TYPES ao mínimo necessário.

Como prevenir

  • Defina o ALLOW MIME TYPES apenas com os formatos realmente aceitos (ex.: pdf, jpg, png) para reduzir spam e arquivos perigosos no upload público.
  • Configure MAXIMUM SIZE IN MB e os limites do PHP (upload_max_filesize e post_max_size) com valores coerentes entre si para evitar rejeicoes inesperadas.
  • Use a MAXIMUM FILE SIZE MESSAGE e os avisos de validação para orientar o visitante sobre tamanho e quantidade antes do envio.
  • Revise o USER ACCESS de cada Media Field conforme o público do formulário, deixando convidado apenas onde o upload anonimo for intencional.

Causa

  • O arquivo enviado e maior que o valor definido em MAXIMUM SIZE IN MB no Media Field (padrão 40 MB na documentação), entao o JetFormBuilder o rejeita com 'File size limit exceeded'.
  • O visitante anexa mais arquivos do que o permitido em MAXIMUM ALLOWED FILES TO UPLOAD, disparando a validação 'Files limit exceeded' do campo.
  • A extensão do arquivo não esta listada em ALLOW MIME TYPES (que aceita tipos separados por virgula, espaco ou Enter), e como o campo não esta vazio ele bloqueia qualquer formato fora da lista.
  • O USER ACCESS do campo esta restrito a usuários registrados ou a quem pode enviar arquivos, mas o formulário e usado por visitantes deslogados, que entao não tem permissão para o upload.
  • O limite do servidor PHP (upload_max_filesize ou post_max_size no php.ini ou no host) e menor que o arquivo enviado, recusando o upload antes da validação do JetFormBuilder.
  • O toggle Insert attachment esta ligado mas o usuário do upload não tem capacidade de gravar na Biblioteca de Mídia, fazendo o anexo não ser salvo após o envio.

Como resolver

  1. Ajuste o tamanho máximo no Media Field: No editor do formulário, selecione o campo Media Field e aumente o valor de MAXIMUM SIZE IN MB para acomodar o arquivo enviado. O padrão da documentação e 40 MB, entao confira se o seu arquivo passa desse limite e suba o número conforme a necessidade.
    Editor do formulário -> clique no campo Media Field
    Aba Field -> MAXIMUM SIZE IN MB -> defina o tamanho desejado (ex.: 80)
    Ajuste também a MAXIMUM FILE SIZE MESSAGE para um aviso claro ao visitante
  2. Libere a quantidade e os tipos de arquivo: Ainda no Media Field, revise MAXIMUM ALLOWED FILES TO UPLOAD para o número de anexos esperado e confira o ALLOW MIME TYPES. Se quiser aceitar vários formatos, liste-os separados por virgula ou deixe o campo vazio para permitir todos os tipos, como indica a documentação.
    Aba Field -> MAXIMUM ALLOWED FILES TO UPLOAD -> defina o número de arquivos
    Aba Field -> ALLOW MIME TYPES -> ex.: jpg, png, pdf (ou deixe vazio para todos)
  3. Corrija a permissão em USER ACCESS: Se visitantes deslogados precisam enviar arquivos, abra o dropdown USER ACCESS do campo e selecione a opção que inclui qualquer usuário, inclusive convidado. Restringir a usuários registrados bloqueia o upload de quem não esta logado.
    Aba Field -> USER ACCESS -> selecione 'Any user (incl. Guest)'
    Para formulários internos, mantenha uma opção mais restrita de proposito
  4. Eleve os limites de upload do PHP: Mesmo com o campo configurado, o servidor PHP recusa arquivos acima de upload_max_filesize e post_max_size. Aumente esses valores no php.ini ou no painel do host para que sejam iguais ou maiores que o limite do Media Field.
    Edite o php.ini (ou use o painel do host)
    upload_max_filesize = 128M
    post_max_size = 128M
    Reinicie o PHP/servidor para aplicar as mudancas
  5. Teste o envio e confira a Biblioteca de Mídia: Abra o formulário em uma janela anonima, envie um arquivo dentro dos novos limites e confirme o submit. Se o toggle Insert attachment estiver ligado, verifique se o anexo aparece na Biblioteca de Mídia após o envio.
    Abra o formulário em uma aba anonima e envie um arquivo de teste
    Painel WP -> Mídia -> Biblioteca -> confirme o anexo (se Insert attachment estiver ligado)
PHP
<?php
// Amplia os tipos MIME aceitos pelo upload do WordPress para o Media Field.
add_filter( 'upload_mimes', 'full_jfb_allow_extra_mimes' );
function full_jfb_allow_extra_mimes( $mimes ) {
    $mimes['svg']  = 'image/svg+xml';
    $mimes['webp'] = 'image/webp';
    return $mimes;
}

// Garante o teto de tamanho de upload no PHP via .htaccess/ini.
if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
    @ini_set( 'upload_max_filesize', '128M' );
    @ini_set( 'post_max_size', '128M' );
}

Perguntas frequentes

Por que o JetFormBuilder mostra File size limit exceeded no upload
O arquivo enviado passou do valor definido em MAXIMUM SIZE IN MB no Media Field, cujo padrão na documentação e 40 MB. Aumente esse limite no campo e confira também o upload_max_filesize do PHP, que precisa ser igual ou maior.
Como permitir mais de um arquivo no campo de upload do JetFormBuilder
No Media Field, ajuste a opção MAXIMUM ALLOWED FILES TO UPLOAD para o número de anexos desejado. Se o visitante tentar enviar mais do que esse valor, o campo exibe a mensagem Files limit exceeded e bloqueia o envio.
Por que meu arquivo PDF e recusado no formulário
Provavelmente a extensão não esta na lista do ALLOW MIME TYPES do campo. Adicione o formato (ex.: pdf) separado por virgula, espaco ou Enter, ou deixe o campo vazio para aceitar todos os tipos, conforme a documentação da Crocoblock.
Visitantes deslogados não conseguem enviar arquivos, o que fazer
Isso e controlado pelo dropdown USER ACCESS do Media Field. Para liberar o upload a quem não esta logado, selecione a opção que inclui qualquer usuário, inclusive convidado. Restringir a usuários registrados bloqueia o envio anonimo.
O upload funciona mas o anexo não aparece na Biblioteca de Mídia
A integração com a Biblioteca de Mídia depende do toggle Insert attachment ligado no campo. Confirme que ele esta ativo e que o usuário do envio tem permissão para gravar mídia; sem isso o arquivo fica apenas na pasta protegida do JetFormBuilder.
Arquivos grandes falham mesmo com o limite do campo aumentado
Quando o arquivo passa de upload_max_filesize ou post_max_size do PHP, o servidor recusa o upload antes do JetFormBuilder validar. Aumente esses valores no php.ini ou no painel do host para um número igual ou maior que o limite do Media Field.
E seguro liberar todos os tipos de arquivo no upload público
Não e recomendado. A documentação da Crocoblock alerta que permitir todos os tipos para qualquer usuário expoe o site a spam e conteúdo inapropriado. Restrinja o ALLOW MIME TYPES apenas aos formatos necessarios para o formulário.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes