Generador de archivos ficticios
Genera archivos ficticios de un tamaño exacto en bytes —imágenes, audio, vídeo, PDF, texto y más— completamente en tu navegador. Útil para probar los límites de tamaño de formularios de carga. Los archivos nunca se envían a ningún servidor.
Formato
| Formato | Extensión | Tipo MIME | Límite según la especificación | Notas |
|---|---|---|---|---|
| Texto (TXT) | .txt |
text/plain |
Prácticamente ilimitado | Relleno con texto legible repetido |
| CSV | .csv |
text/csv |
Prácticamente ilimitado | Datos de tabla ficticios con fila de encabezado |
| JSON | .json |
application/json |
Prácticamente ilimitado | Relleno en un único campo de tipo cadena |
| Binario (BIN) | .bin |
application/octet-stream |
Prácticamente ilimitado | Bytes arbitrarios que repiten de 0x00 a 0xFF |
| Imagen (PNG) | .png |
image/png |
Prácticamente ilimitado | Imagen válida de 1x1 + fragmento de relleno |
| Audio (WAV) | .wav |
audio/wav |
4 GiB | Datos PCM silenciosos (reproducibles de verdad) |
| Vídeo (MP4) | .mp4 |
video/mp4 |
Prácticamente ilimitado | Grabación real en navegadores compatibles; relleno con estructura válida en el resto |
| Vídeo (WebM) | .webm |
video/webm |
Prácticamente ilimitado | Animación de unos segundos grabada de verdad (solo en navegadores compatibles) |
.pdf |
application/pdf |
Prácticamente ilimitado | PDF válido de una página en blanco | |
| ZIP | .zip |
application/zip |
4 GiB | Archivo sin comprimir con una única entrada |
Qué es un generador de archivos ficticios
Al crear una función de carga de archivos, es necesario comprobar que los límites de tamaño y las comprobaciones de extensión funcionan realmente como se espera. Para eso hace falta un archivo que sea "exactamente de un número de bytes determinado, pero válido para su formato", y ese tipo de archivo no suele tenerse a mano. Esta herramienta genera texto, imágenes, audio, vídeo, PDF, archivos ZIP y más, cada uno con el tamaño exacto que indiques.
Todos los archivos generados son datos válidos conforme a la especificación de su formato. Muchos formatos reservan zonas que un lector puede omitir sin problema, y esta herramienta usa precisamente esas zonas para ajustar el tamaño, de modo que no se produce ningún error al abrirlos. Todo el procesamiento ocurre dentro del navegador y nada se envía nunca a un servidor. Ten en cuenta que WAV y ZIP tienen un límite de 4 GiB fijado por su propia especificación.
Cómo generar un archivo ficticio
- Elige el formato de archivo Selecciona el formato que acepte lo que quieres probar. Si buscas comprobar la validación de extensión o de tipo MIME, elige exactamente ese formato.
- Indica el tamaño Introduce un número y una unidad. Si el límite que pruebas es de "10 MB", ten en cuenta que el umbral cambia según si se interpreta como 10.000.000 o 10.485.760 bytes.
- Define el nombre del archivo Puedes incluir la extensión en el nombre elegido. Cambia este valor si quieres probar reglas de rechazo basadas en el nombre.
- Genera y descarga el archivo Al pulsar "Generar" se crea el archivo. Los tamaños grandes tardan más, y mientras tanto puedes cancelar el proceso en cualquier momento.
Consejos para aprovecharla mejor
- La lógica de validación de los formularios de carga suele comprobar por separado tres cosas: la extensión, el tipo MIME y el tamaño del archivo. Como esta herramienta genera archivos válidos en todo lo demás, puedes probar únicamente el límite de tamaño de forma aislada.
- Un límite de "hasta 10 MB" puede significar 10.000.000 bytes (106) en una implementación y 10.485.760 bytes (220) en otra. El selector de unidad te permite elegir ambos criterios, para probar tanto el valor límite exacto como un byte por encima de él.
- Chrome y Edge transmiten los datos directamente a la unidad elegida, por lo que se pueden generar archivos de decenas de gigabytes sin saturar la memoria. Firefox y Safari ensamblan el archivo en memoria primero, lo que impone un límite práctico de tamaño.
- En navegadores compatibles, el vídeo (MP4/WebM) se graba realmente como unos segundos de animación mediante el codificador integrado del navegador, por lo que se reproduce de verdad al abrirlo. Todo lo demás —el relleno que compone la mayor parte del archivo, y el contenido de los demás formatos de imagen y audio— es ficticio. El objetivo es únicamente probar la validación de tamaño, extensión y tipo MIME.
Usos habituales de los archivos ficticios
Pruebas de valores límite en cargas
Genera un archivo justo en el límite y otro un byte por encima para probar ambos. Así compruebas si el mensaje de error aparece exactamente donde marca la especificación.
Verificación de la extensión y el tipo MIME
Genera un formato permitido y otro prohibido y envía ambos, para identificar con cuál de los dos criterios se está produciendo el rechazo.
Comprobación del comportamiento con transferencias grandes
Con archivos de varios gigabytes puedes verificar que el indicador de progreso, los tiempos de espera y la reanudación tras una interrupción funcionan correctamente, sin necesidad de conseguir datos reales.
Estimación de almacenamiento y ancho de banda
Colocar un archivo del tamaño previsto permite medir de forma real el consumo de almacenamiento y el tiempo de transferencia.
Términos sobre la validación de archivos
- Tipo MIME
- Una cadena que indica el tipo de archivo, escrita como
image/png, y que se usa habitualmente para decidir si se permite una carga. - Prueba de valores límite
- Un método de prueba que comprueba el punto exacto de un límite junto con los valores justo antes y después, porque ahí es donde más suelen aparecer los fallos.
- Relleno
- Datos sin significado que se añaden solo para alcanzar el tamaño deseado. Se colocan en zonas que el formato permite omitir, así que el archivo no se daña.
- GiB frente a GB
- Un GiB equivale a 1.073.741.824 bytes y un GB a 1.000.000.000 bytes. Esta diferencia es una causa habitual de que el límite se interprete de forma distinta.
- Escritura en flujo
- Un método que escribe los datos en su destino poco a poco, de modo que incluso los archivos muy grandes se pueden generar sin cargar todo el contenido en memoria.
Preguntas frecuentes
A propósito — Dónde termina lo "válido" y empieza lo "corrupto"
La mayoría de los formatos de archivo reservan regiones que el analizador (parser) tiene permitido saltarse: los fragmentos desconocidos de PNG, la caja free de MP4 y el elemento Void de WebM son ejemplos de ello. Se diseñaron desde el principio como espacio reservado para futuras extensiones que los analizadores actuales deben ignorar, así que rellenarlos nunca corrompe el archivo.
En el caso del vídeo, lo hacemos realmente reproducible colocando metraje real antes del relleno. Escribir a mano la codificación a nivel de bits de un códec es demasiado difícil de garantizar como correcta, así que, en su lugar, dejamos que el propio codificador integrado del navegador (la API MediaRecorder) grabe unos segundos de una animación en un lienzo (canvas) y añadimos el relleno después. Es una forma de conciliar "devolver siempre un archivo garantizado como válido" con "el usuario quiere ver de verdad un vídeo".
Curiosamente, un archivo ZIP está diseñado de forma que basta con leer el "directorio central" al final para conocer la lista completa de su contenido. Se dice que esto es un vestigio de la era de las cintas magnéticas, cuando se leía desde el final, y hoy sigue siendo la razón por la que se puede extraer rápidamente un único archivo de un ZIP enorme.