Referencia rápida de formato de archivo para desarrolladores
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.
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>