Subir un archivo
  1. base64hub
  2. Herramientas de archivos
  3. Archivo a Base64

Archivo a Base64

Suelta cualquier archivo, o varios, y copia el Base64 como cadena simple, data URI u objeto JSON. Los archivos grandes se leen por bloques dentro de tu navegador y no se sube nada.

Gratis sin registro, sin límites Local no se sube nada En lote varios archivos, un array JSON Actualizado 27 oct 2026
Suelta archivos aquí, pégalos o selecciónalos
Entrada –Salida –Tamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo convertir un archivo a Base64

  1. Suelta uno o varios archivos en el recuadro, usa el selector de archivos o pega archivos copiados con Ctrl+V.
  2. Elige Salida como: Base64 simple (la opción por defecto aquí), Data URI, HTML <a download>, JSON y los envoltorios para imágenes y fuentes.
  3. Opcional: URL-safe (- _) cambia + y / por - y _; Ajustar a 76 parte las líneas para el correo MIME.
  4. Copiar salida, o Guardar como .txt para obtener filename.ext.b64.txt.

Con varios archivos, una lista muestra cada nombre con su tamaño original y codificado. Mostrar enseña un resultado, y Copiar todo como JSON copia todos los archivos como un array de objetos {name, type, size, data}. Es rápido de pegar en un archivo de fixtures o en un script de seed.

Qué significan las opciones de salida para archivos que no son imágenes

Salida comoResultado para report.zipÚsala para
Base64 simpleUEsDBBQAAAAI...campos de API, variables de entorno, valores de configuración
Data URIdata:application/zip;base64,UEsDBBQA...URL en HTML o JavaScript
HTML <a download><a href="data:application/zip;base64,..." download="report.zip">report.zip</a>un enlace de descarga autocontenido
JSON{"name": "report.zip", "type": "application/zip", "size": 323, "data": "UEsDBBQA..."}fixtures de prueba, tus propios endpoints de subida

Las claves del JSON son fijas (name, type, size, data). Si una API espera otros nombres, renómbralas después de pegar. size es el tamaño original del archivo en bytes, lo que permite al receptor comprobar que la longitud decodificada coincide.

El tipo MIME del data URI y el type del JSON vienen de tu navegador. Si el navegador no conoce el archivo, la herramienta lo deduce por la extensión, y si eso también falla usa application/octet-stream. Solo la etiqueta depende de esto; el Base64 es el mismo en cualquier caso.

Archivos binarios en secretos de CI y configuración

Un motivo habitual para codificar un archivo entero es un almacén de secretos que solo guarda texto: variables de CI, archivos .env, Secrets de Kubernetes. Los keystores de firma, los certificados y los archivos de cuentas de servicio entran como una línea de Base64 y se restauran en el pipeline:

echo "$KEYSTORE_B64" | base64 -d > release.keystore

Deja Ajustar a 76 desactivado para esto. Un valor con saltos de línea suele quedar estropeado por la interfaz de secretos o por la shell. Kubernetes guarda así cada valor bajo data:, y el decodificador de Secrets de Kubernetes los vuelve a leer.

Saber qué codificaste por los primeros caracteres

Los primeros bytes de la mayoría de los formatos de archivo son una firma fija, así que el inicio del Base64 te dice el tipo sin decodificar. Algunos habituales:

Tipo de archivoEl Base64 empieza por
PDFJVBERi0
ZIP, DOCX, XLSX, PPTX, JAR, APKUEsDB
gzip (.gz, .tgz)H4sI
7-ZipN3q8ryc
EXE o DLL de WindowsTVqQ (la mayoría de los archivos), siempre TV
Binario ELF de Linuxf0VMRg
Base de datos SQLiteU1FMaXRlIGZvcm1hdCAz
MP3 con etiqueta ID3SUQz
PNGiVBORw0KGgo
Objeto JSONeyJ (para {")

Hay una lista más larga en prefijos Base64 habituales. Cuando decodificas con Base64 a archivo, el tipo se detecta de la misma forma.

Tamaño, memoria y archivos grandes

La salida Base64 ocupa 4/3 de la entrada, redondeado a un múltiplo de 4 caracteres. Un archivo de 1 MB se convierte en 1.398.104 caracteres, y con Ajustar a 76 se añaden otros 18.396 caracteres de salto de línea. Los contadores bajo la salida muestran ambos tamaños y la sobrecarga en porcentaje.

Todo se ejecuta en la pestaña del navegador, así que el límite práctico es la memoria de tu dispositivo:

  • El cuadro de texto muestra los primeros 4 MB de la salida; Copiar salida y Guardar como .txt siempre usan el resultado completo.
  • Copiar salida se desactiva con salidas de más de unos 48 MB.
  • Los archivos de más de unos 48 MB se codifican por bloques y el resultado solo se ofrece mediante Guardar como .txt.

Si un archivo es así de grande, plantéate si Base64 es el transporte adecuado. Una subida multipart o una transferencia binaria directa evita el 33 % de sobrecarga y el pico de memoria en ambos extremos. La calculadora de tamaño muestra el tamaño codificado antes de empezar.

Codificar un archivo desde la línea de comandos o en código

Linux, con GNU coreutils (-w 0 desactiva el ajuste por defecto a 76 caracteres):

base64 -w 0 report.zip > report.zip.b64

macOS (allí base64 no ajusta las líneas por defecto):

base64 -i report.zip -o report.zip.b64

Windows PowerShell:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\data\report.zip")) | Set-Content report.zip.b64

Python:

import base64
from pathlib import Path

encoded = base64.b64encode(Path("report.zip").read_bytes()).decode("ascii")

Para procesar archivos grandes en streaming sin cargarlos en memoria, consulta Base64 en Python, Node.js, Java y PHP.

Problemas habituales

  • Saltos de línea en la salida. GNU base64 ajusta a 76 caracteres por defecto, openssl base64 a 64, y certutil -encode además añade líneas de cabecera. Muchas API JSON y variables de entorno necesitan una sola línea. Usa -w 0, openssl base64 -A o esta herramienta con el ajuste desactivado.
  • application/octet-stream en el data URI. El navegador no conocía el tipo y la extensión no estaba en la lista de la herramienta. Los bytes siguen siendo correctos; sustituye el tipo MIME del prefijo si al receptor le importa.
  • Copiar salida aparece en gris. El resultado supera el límite de copia de unos 48 MB. Guardar como .txt sigue funcionando, y la mayoría de las herramientas que necesitan la cadena pueden leerla de un archivo.
  • El JSON tiene "data": null para un archivo. En un lote, los archivos de más de unos 48 MB se codifican por bloques solo para descarga, así que Copiar todo como JSON deja fuera sus datos. Codifica ese archivo por separado y guárdalo como .txt.
  • El archivo decodificado es más pequeño que el original. La cadena se truncó. Compara la longitud decodificada con el valor size de la salida JSON.
  • Salida ilegible cuando la entrada era texto. Base64 conserva los bytes tal cual, incluida la codificación de caracteres original. Un archivo de texto UTF-16 se decodifica en UTF-16, no en UTF-8. Para texto que escribes tú, usa Texto a Base64, que permite elegir el juego de caracteres.

Preguntas frecuentes

¿Qué tipos de archivo puedo convertir a Base64?

Cualquiera. Base64 codifica bytes y no le importa lo que significan, así que ejecutables, archivos comprimidos, bases de datos y documentos funcionan igual que el texto. Las páginas por formato, como PDF a Base64, solo añaden pistas para ese formato.

¿Hay un límite de tamaño de archivo?

No hay un límite fijo, porque todo ocurre en tu navegador. Una salida de hasta unos 48 MB se puede copiar; por encima, usa Guardar como .txt. Los archivos de más de unos 48 MB se codifican por bloques y solo se ofrecen como descarga.

¿Cómo codifico un archivo a Base64 en Windows sin herramientas adicionales?

PowerShell lo hace en una línea: [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\path\file.bin")). certutil -encode también sirve, pero añade líneas -----BEGIN CERTIFICATE----- y ajusta la salida, y luego tienes que quitar todo eso.

¿Qué tipo MIME usa el data URI?

El tipo que tu navegador informa para el archivo. Si no informa ninguno, la herramienta lo deduce por la extensión y, si no puede, usa application/octet-stream. Edita el prefijo a mano si el receptor necesita un tipo concreto.

¿Cómo decodifico el Base64 de vuelta a un archivo?

Usa Base64 a archivo. Detecta el tipo de archivo a partir de los bytes decodificados y sugiere la extensión adecuada.