Saltar al contenido

Referencia rápida de formato de archivo para desarrolladores

Categoría: Referencia
Este artículo está disponible actualmente solo en japonés. Estamos trabajando en las traducciones.

En el desarrollo de aplicaciones web, el conocimiento de formatos de archivo es fundamental para validación de archivos, determinación de tipos MIME y diseño de límites de carga. Este artículo recopila una lista de formatos de archivo comúnmente utilizados en el desarrollo. Márquelo como favorito y úselo como referencia rápida que puede consultar en cualquier momento.

Matriz de uso de formatos principales Formatos por categoría y casos de uso Imagen JPEG / JPG PNG (透過) WebP (Web推奨) AVIF (次世代) SVG (ベクター) GIF (アニメ旧式) Documento PDF (配布) DOCX (Word) XLSX (Excel) PPTX (PowerPoint) ODT (OpenDoc) RTF (互換) Archivo ZIP (標準) TAR.GZ (Unix) 7Z (高圧縮) RAR (有償) XZ (LZMA) BZIP2 (旧) Texto/Datos JSON (API) CSV (表計算) XML (構造) YAML (設定) TOML (設定) TXT (素朴)
Fig 1: Formatos principales en 4 categorías

Formato de imagen

Extensión de Archivo Tipo MIME Compresión Transparencia Casos de uso principales
.png image/png Sin pérdida Compatible Capturas de pantalla, logotipos, iconos
.jpg / .jpeg image/jpeg Con pérdida No compatible Fotos, miniaturas
.gif image/gif Sin pérdida Compatible (1bit) Animación, diagramas simples
.webp image/webp Ambos Compatible Uso general en web (candidato sucesor de PNG)
.avif image/avif Ambos Compatible Imagen web de próxima generación
.svg image/svg+xml Ninguno (XML) Compatible Imágenes vectoriales, iconos

<strong>Nota:</strong> SVG está basado en XML y conlleva riesgo de XSS (Cross-Site Scripting). Es peligroso mostrar directamente SVG cargados por usuarios. Siempre realiza sanitización.

Formato de documento

Extensión de Archivo Tipo MIME Estructura interna Casos de uso principales
.pdf application/pdf Binario Documentos para imprimir, formularios
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document ZIP(XML) Documento de Word
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ZIP(XML) Hoja de cálculo de Excel
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation ZIP(XML) Presentación de PowerPoint

Formato de archivo

Extensión de Archivo Tipo MIME Características Puntos a tener en cuenta
.zip application/zip Más ampliamente distribuido, soporte estándar del SO Nombres de archivo en japonés corrupto (UTF-8 vs CP932)
.tar.gz application/gzip Estándar Unix/Linux Puede ser necesaria una herramienta de extracción en Windows
.7z application/x-7z-compressed Alta tasa de compresión Se requiere una herramienta dedicada (7-Zip)
.rar application/vnd.rar Compatible con archivos divididos Formato propietario

Formatos de texto y datos

Extensión de Archivo Tipo MIME Caso de uso Problemas comunes
.csv text/csv Intercambio de datos, Importación/Exportación Codificación de Caracteres, Código de Salto de Línea y BOM
.json application/json Comunicación de API, archivos de configuración UTF-8 requerido (RFC 8259)
.xml application/xml Archivos de configuración e intercambio de datos Discrepancia con la declaración de codificación
.txt text/plain Registros, notas, README La detección automática de codificación de caracteres es inestable

Validación de tipo MIME

Al implementar la funcionalidad de carga de archivos, es importante validar no solo la extensión del archivo sino también el tipo MIME. Sin embargo, dado que el tipo MIME puede ser falsificado en el cliente, también use verificaciones de magic byte (encabezado de archivo) en el servidor.

// PHP でのマジックバイトによる判定
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($_FILES['upload']['tmp_name']);

$allowedTypes = [
    'image/png',
    'image/jpeg',
    'image/webp',
    'application/pdf',
];

if (!in_array($mimeType, $allowedTypes, true)) {
    throw new Exception('許可されていないファイル形式です');
}
// Node.js での file-type ライブラリを使った判定
import { fileTypeFromFile } from 'file-type';

const type = await fileTypeFromFile('upload.png');
console.log(type);
// { ext: 'png', mime: 'image/png' }

Descargar archivos de prueba

Para probar el procesamiento de validación y la funcionalidad de carga de cada formato, utilice los archivos de prueba de DevLab.

  • <a href="/ja/files/images/">Archivos de imagen</a> — PNG, JPG, WebP, GIF en varios tamaños
  • <a href="/ja/files/pdf/">Archivos PDF</a> — Archivos de prueba PDF en varios tamaños
  • <a href="/ja/files/zip/">Archivos ZIP</a> — Para probar procesamiento de archivos
  • <a href="/ja/files/csv/">Archivos CSV</a> — Prueba de importación de datos
  • <a href="/ja/files/json/">Archivos JSON</a> — Para pruebas de API
  • <a href="/ja/files/txt/">Archivos de Texto</a> — Para probar procesamiento de texto
  • <a href="/ja/files/broken/">Archivos rotos</a> — Prueba de manejo de errores

Resumen

Una comprensión correcta de los formatos de archivo es la base para implementar funcionalidad de carga segura y robusta. Valide usando tanto tipos MIME como bytes mágicos, no solo extensiones de archivo, para realizar una validación adecuada. Recomendamos marcar esta referencia para que pueda consultarla en cualquier momento durante el desarrollo.

Archivos de prueba para este artículo

  • → <a href="/ja/files/images/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de archivos de prueba de imagen (PNG / JPG / WebP / GIF)</a>
  • → <a href="/ja/files/pdf/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de archivos de prueba PDF</a>
  • → <a href="/ja/files/zip/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de archivos de prueba ZIP</a>
  • → <a href="/ja/files/csv/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de archivos de prueba CSV</a>
  • → <a href="/ja/files/json/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de archivos de prueba JSON</a>

Artículos relacionados

  • → <a href="/ja/blog/file-validation-checklist/" class="text-primary-600 dark:text-primary-400 hover:underline">Lista de Verificación de Implementación de Validación de Archivos en Formularios Web</a>
  • → <a href="/ja/reference/magic-bytes/" class="text-primary-600 dark:text-primary-400 hover:underline">Referencia de bytes mágicos (firma de archivo)</a>