O que é progresso de upload
Progresso de upload é a informação sobre o andamento de um arquivo enviado ao servidor. Ela permite mostrar uma barra, um percentual ou uma mensagem de espera enquanto o envio acontece.
Sem esse recurso, a interface fica parada até a resposta chegar. Em arquivos grandes ou conexões lentas, a espera sem retorno leva ao reenvio do formulário, o que duplica o envio.
Como o servidor acompanha o envio
No PHP, o progresso pode ser gravado na sessão durante o recebimento do arquivo. O recurso depende da diretiva session.upload_progress.enabled e de um campo no formulário com o nome definido por session.upload_progress.name. O valor padrão desse campo é PHP_SESSION_UPLOAD_PROGRESS.
O PHP grava o estado durante o recebimento do arquivo, numa etapa anterior à execução do script da página. Outra requisição consulta o estado e devolve o andamento para a interface. O upload termina quando o arquivo é recebido, e o processamento da aplicação começa depois disso.
O que o navegador mostra
A API de upload do navegador informa o quanto já foi enviado. Esse acompanhamento acontece no cliente e não depende do PHP. A combinação das duas camadas permite mostrar o envio e o processamento como etapas diferentes.
O FormData organiza os campos e o arquivo na requisição. O nome do campo de progresso precisa ser enviado junto, ou o servidor não registra o estado.
Configuração e nomes de campo
A diretiva pode ser alterada no arquivo INI do serviço web, em um arquivo por diretório ou em uma configuração de servidor, conforme o ambiente. A capacidade de alterar cada arquivo precisa ser confirmada com a hospedagem.
Copiar uma linha de INI para o .htaccess não aplica a diretiva. Cada ambiente tem uma forma própria, e a conferência precisa olhar o processo que atende o domínio, além do executável chamado no terminal.
Como testar
Envie um arquivo grande por uma conexão real e observe a interface durante o envio. Confira a exibição do estado e o avanço da barra, além da resposta final para o arquivo recebido. Repita com um arquivo pequeno e com uma falha de rede.
O formulário e a requisição precisam ser conferidos juntos. Para revisar o fluxo de envio e a configuração do servidor, o Desenvolvimento Colaborativo da Dev Side Studio permite acompanhar o envio e examinar a resposta durante a sessão.
Dúvidas frequentes
Perguntas frequentes sobre Progresso de upload
- O progresso substitui o envio do arquivo?
- Não. Ele informa o andamento enquanto o arquivo é recebido. O envio e o processamento continuam acontecendo no servidor.
- Por que a barra não aparece?
- O recurso depende de configuração do servidor e de um campo com o nome esperado no formulário. Sem os dois, o estado não é registrado.
- O navegador mostra o progresso sem configuração no servidor?
- A API de upload do navegador permite acompanhar o envio. O recurso do PHP é outra camada, útil quando a aplicação precisa consultar o estado durante a requisição.
- Desativar o progresso quebra o formulário?
- Só se a interface depender dele. Confira o fluxo antes de alterar a configuração e teste um envio legítimo depois da mudança.
Para continuar
Recursos relacionados
Documentação
PHP: progresso de upload na sessão
Explica as diretivas, o nome do campo e quando o estado é gravado.
Abrir recursoDocumentação
MDN: acompanhar o upload de arquivos
Mostra o objeto de upload do navegador e os eventos de progresso.
Abrir recursoAplicação na formação
Vibe Coding: Do Zero ao MVP
O recurso aparece ao construir formulários que enviam arquivos grandes e precisam mostrar andamento.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.