Ferramentas de Desenvolvimento
Gerador de arquivos fictícios
Gere arquivos fictícios com um tamanho exato em bytes — imagens, áudio, vídeo, PDF, texto e mais — totalmente no seu navegador. Útil para testar os limites de tamanho de formulários de upload. Os arquivos nunca são enviados a um servidor.
Formato
| Formato | Extensão | Tipo MIME | Limite da especificação | Observações |
|---|---|---|---|---|
| Texto (TXT) | .txt |
text/plain |
Praticamente ilimitado | Preenchido com texto legível repetido |
| CSV | .csv |
text/csv |
Praticamente ilimitado | Dados de tabela fictícios com linha de cabeçalho |
| JSON | .json |
application/json |
Praticamente ilimitado | Preenchido em um único campo de string |
| Binário (BIN) | .bin |
application/octet-stream |
Praticamente ilimitado | Bytes arbitrários repetindo de 0x00 a 0xFF |
| Imagem (PNG) | .png |
image/png |
Praticamente ilimitado | Imagem válida de 1x1 + bloco de preenchimento |
| Áudio (WAV) | .wav |
audio/wav |
4 GiB | Dados PCM silenciosos (realmente reproduzíveis) |
| Vídeo (MP4) | .mp4 |
video/mp4 |
Praticamente ilimitado | Gravação real em navegadores compatíveis; placeholder com estrutura válida nos demais |
| Vídeo (WebM) | .webm |
video/webm |
Praticamente ilimitado | Animação de poucos segundos realmente gravada (apenas em navegadores compatíveis) |
.pdf |
application/pdf |
Praticamente ilimitado | PDF válido de uma página em branco | |
| ZIP | .zip |
application/zip |
4 GiB | Arquivo não compactado com uma única entrada |
Dicas para gerar arquivos fictícios
- A lógica de validação dos formulários de upload costuma verificar separadamente três coisas: extensão, tipo MIME e tamanho do arquivo. Como esta ferramenta gera arquivos válidos em tudo o mais, você pode testar apenas o limite de tamanho de forma isolada.
- Um limite de "até 10MB" pode significar 10.000.000 bytes (106) em uma implementação e 10.485.760 bytes (220) em outra. O seletor de unidade permite escolher os dois critérios, para testar tanto o valor exato do limite quanto um byte acima dele.
- Chrome e Edge transmitem os dados diretamente para a unidade escolhida, então arquivos com dezenas de gigabytes podem ser gerados sem sobrecarregar a memória. Firefox e Safari montam o arquivo na memória primeiro, o que impõe um limite prático de tamanho.
- Em navegadores compatíveis, o vídeo (MP4/WebM) é gravado de verdade como alguns segundos de animação usando o codificador embutido do navegador, por isso ele realmente é reproduzido ao ser aberto. Todo o restante — o preenchimento que compõe a maior parte do arquivo, e o conteúdo dos demais formatos de imagem e áudio — é fictício. O objetivo é apenas testar a validação de tamanho, extensão e tipo MIME.
Perguntas frequentes
Curiosidade — Onde termina o "válido" e começa o "corrompido"
A maioria dos formatos de arquivo reserva regiões que o analisador (parser) tem permissão para pular: os blocos desconhecidos do PNG, a caixa free do MP4 e o elemento Void do WebM são exemplos disso. Eles foram projetados desde o início como espaço reservado para extensões futuras que os analisadores atuais devem ignorar, portanto preenchê-los nunca corrompe o arquivo.
No caso do vídeo, tornamos a reprodução realmente possível colocando imagens reais antes do preenchimento. Escrever manualmente a codificação em nível de bits de um codec é algo cuja correção é difícil de garantir, então, em vez disso, deixamos que o próprio codificador embutido do navegador (a API MediaRecorder) grave alguns segundos de uma animação em canvas, adicionando o preenchimento depois. É uma forma de conciliar "sempre retornar um arquivo garantidamente válido" com "o usuário realmente quer ver um vídeo".
Curiosamente, um arquivo ZIP é projetado de forma que basta ler o "diretório central" no final para conhecer toda a lista de conteúdo. Diz-se que isso é um resquício da era das fitas magnéticas, quando a leitura era feita a partir do final, e ainda hoje é o motivo pelo qual é possível extrair rapidamente um único arquivo de um ZIP enorme.