Skip to content

File format quick reference for developers

Category: Reference
This article is currently available in Japanese only. We are working on translations.

In web application development, knowledge of file formats is frequently required for file validation, MIME type determination, and upload limit design. This article compiles a list of commonly used file formats in development. Bookmark it and use it as a quick reference you can consult at any time.

Major file formats usage matrix File formats and primary use cases by category Image JPEG / JPG PNG (透過) WebP (Web推奨) AVIF (次世代) SVG (ベクター) GIF (アニメ旧式) Document PDF (配布) DOCX (Word) XLSX (Excel) PPTX (PowerPoint) ODT (OpenDoc) RTF (互換) Archive ZIP (標準) TAR.GZ (Unix) 7Z (高圧縮) RAR (有償) XZ (LZMA) BZIP2 (旧) Text/Data JSON (API) CSV (表計算) XML (構造) YAML (設定) TOML (設定) TXT (素朴)
Fig 1: Major file formats across 4 categories

Image format

File Extension MIME Type Compression Transparency Primary use cases
.png image/png Lossless Support Screenshots, logos, icons
.jpg / .jpeg image/jpeg Lossy Not supported Photos, thumbnails
.gif image/gif Lossless Support (1bit) Animation, simple diagrams
.webp image/webp Both Support General Web Use (PNG Successor Candidate)
.avif image/avif Both Support Next-generation web image
.svg image/svg+xml None (XML) Support Vector images, icons

<strong>Note:</strong> SVG is XML-based and carries the risk of XSS (Cross-Site Scripting). Displaying user-uploaded SVG directly is dangerous. Always perform sanitization.

Document Format

File Extension MIME Type Internal structure Primary use cases
.pdf application/pdf Binary Documents for printing, forms
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document ZIP(XML) Word Document
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ZIP(XML) Excel Spreadsheet
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation ZIP(XML) PowerPoint presentation

Archive format

File Extension MIME Type Features Points to note
.zip application/zip Most widely distributed, standard OS support Garbled Japanese filenames (UTF-8 vs CP932)
.tar.gz application/gzip Unix/Linux standard Extraction tool may be required on Windows
.7z application/x-7z-compressed High compression ratio Dedicated tool (7-Zip) required
.rar application/vnd.rar Split Archive Support Proprietary format

Text and data formats

File Extension MIME Type Use case Common issues
.csv text/csv Data Exchange, Import/Export Character Encoding, Line Break Code, and BOM
.json application/json API Communication, Configuration Files UTF-8 required (RFC 8259)
.xml application/xml Configuration files and data exchange Mismatch with encoding declaration
.txt text/plain Logs, notes, README Automatic character encoding detection is unstable

MIME Type Validation

When implementing file upload functionality, it is important to validate not only the file extension but also the MIME type. However, since MIME type can be spoofed on the client side, also use magic byte (file header) checks on the server side.

// 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' }

Download test files

For testing validation processing and upload functionality for each format, please use DevLab's test files.

  • <a href="/ja/files/images/">Image Files</a> — PNG, JPG, WebP, GIF in various sizes
  • <a href="/ja/files/pdf/">PDF Files</a> — PDF test files in various sizes
  • <a href="/ja/files/zip/">ZIP Files</a> — For testing archive processing
  • <a href="/ja/files/csv/">CSV files</a> — Testing data import
  • <a href="/ja/files/json/">JSON Files</a> — For API testing
  • <a href="/ja/files/txt/">Text Files</a> — For testing text processing
  • <a href="/ja/files/broken/">Broken files</a> — Testing error handling

Summary

A correct understanding of file formats is the foundation for implementing safe and robust upload functionality. Validate using both MIME types and magic bytes, not just file extensions, to perform proper validation. We recommend bookmarking this reference so you can consult it at any time during development.

Test files for this article

  • → <a href="/ja/files/images/" class="text-primary-600 dark:text-primary-400 hover:underline">Image Test Files List (PNG / JPG / WebP / GIF)</a>
  • → <a href="/ja/files/pdf/" class="text-primary-600 dark:text-primary-400 hover:underline">PDF Test File List</a>
  • → <a href="/ja/files/zip/" class="text-primary-600 dark:text-primary-400 hover:underline">ZIP test file list</a>
  • → <a href="/ja/files/csv/" class="text-primary-600 dark:text-primary-400 hover:underline">CSV Test Files List</a>
  • → <a href="/ja/files/json/" class="text-primary-600 dark:text-primary-400 hover:underline">JSON Test File List</a>

Related articles

  • → <a href="/ja/blog/file-validation-checklist/" class="text-primary-600 dark:text-primary-400 hover:underline">Web Form File Validation Implementation Checklist</a>
  • → <a href="/ja/reference/magic-bytes/" class="text-primary-600 dark:text-primary-400 hover:underline">Magic bytes (file signature) reference</a>