Schnellreferenz für Dateiformate für Entwickler
Bei der Entwicklung von Webanwendungen werden häufig Kenntnisse über Dateiformate benötigt, wie Dateivalidierung, MIME-Typ-Bestimmung und Upload-Limit-Design. Dieser Artikel fasst die häufig verwendeten Dateiformate in Entwicklungsumgebungen in einer Liste zusammen. Wenn Sie diese als Lesezeichen speichern, können Sie sie als schnelle Referenz jederzeit abrufen.
Bildformat
| Dateityp | MIME-Typ | Komprimierung | Transparenz | Hauptanwendungen |
|---|---|---|---|---|
.png |
image/png |
Reversibel | Entsprechung | Screenshots, Logos, Symbole |
.jpg / .jpeg |
image/jpeg |
Verlustbehaftet | Nicht unterstützt | Fotos, Miniaturansichten |
.gif |
image/gif |
Reversibel | Entsprechung (1bit) | Animation, einfaches Diagramm |
.webp |
image/webp |
beide | Entsprechung | Web allgemein (PNG-Nachfolgekandidat) |
.avif |
image/avif |
beide | Entsprechung | Next-Generation-Web-Images |
.svg |
image/svg+xml |
Keine (XML) | Entsprechung | Vektorgrafiken, Symbole |
<strong>Hinweis:</strong> SVG ist XML-basiert und birgt daher XSS-Risiken (Cross-Site Scripting). Es ist gefährlich, von Benutzern hochgeladene SVGs direkt anzuzeigen. Führen Sie immer eine Bereinigung durch.
Dokumentformat
| Dateityp | MIME-Typ | Interne Struktur | Hauptanwendungen |
|---|---|---|---|
.pdf |
application/pdf |
Binär | Druckdokumente, Formulare |
.docx |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
ZIP(XML) | Word-Dokument |
.xlsx |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ZIP(XML) | Excel-Tabelle |
.pptx |
application/vnd.openxmlformats-officedocument.presentationml.presentation |
ZIP(XML) | PowerPoint-Präsentation |
Archivformat
| Dateityp | MIME-Typ | Merkmale | Wichtige Punkte |
|---|---|---|---|
.zip |
application/zip |
Am weitesten verbreitet, OS-Standard-Unterstützung | Beschädigte japanische Dateinamen (UTF-8 vs CP932) |
.tar.gz |
application/gzip |
Unix/Linux-Standard | Unter Windows können Bereitstellungstools in einigen Fällen erforderlich sein |
.7z |
application/x-7z-compressed |
Hohe Kompressionsrate | Spezialisiertes Tool (7-Zip) erforderlich |
.rar |
application/vnd.rar |
Unterstützung für geteilte Archive | Proprietäres Format |
Textdatenformat
| Dateityp | MIME-Typ | Verwendung | Häufige Probleme |
|---|---|---|---|
.csv |
text/csv |
Datenaustausch, Import/Export | Zeichenkodierung, Zeilenumbruchcodes, BOM |
.json |
application/json |
API-Kommunikation, Konfigurationsdatei | UTF-8 erforderlich (RFC 8259) |
.xml |
application/xml |
Konfigurationsdatei, Datenaustausch | Inkonsistenz mit Encoding-Deklaration |
.txt |
text/plain |
Log, Notizen, README | Die automatische Erkennung der Zeichenkodierung ist instabil |
MIME-Typ-Validierung
Bei der Implementierung der Datei-Upload-Funktion ist es wichtig, nicht nur die Dateierweiterung, sondern auch den MIME-Typ zu validieren. Da der MIME-Typ jedoch auf der Client-Seite gefälscht werden kann, sollten Sie auch eine Magic-Byte-Prüfung (Datei-Header) auf der Server-Seite verwenden.
// 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 der Testdatei
Verwenden Sie die Testdateien von DevLab, um die Validierung und Upload-Funktionen für jedes Format zu testen.
- <a href="/ja/files/images/">Bilddatei</a> — Verschiedene Größen von PNG, JPG, WebP, GIF
- <a href="/ja/files/pdf/">PDF-Dateien</a> — PDF-Testdateien in verschiedenen Größen
- <a href="/ja/files/zip/">ZIP-Datei</a> — Test der Archivverarbeitung
- <a href="/ja/files/csv/">CSV-Datei</a> — Datenimporttest
- <a href="/ja/files/json/">JSON-Dateien</a> — Für API-Tests
- <a href="/ja/files/txt/">Textdatei</a> — Test der Textverarbeitung
- <a href="/ja/files/broken/">Beschädigte Datei</a> — Fehlerbehandlungstest
Zusammenfassung
Das korrekte Verständnis von Dateiformaten ist die Grundlage für die Implementierung einer sicheren und robusten Upload-Funktionalität. Validieren Sie nicht nur die Dateierweiterung, sondern auch den MIME-Typ und Magic Bytes, um eine angemessene Validierung durchzuführen. Wir empfehlen, diese Referenz als Lesezeichen zu speichern, um sie jederzeit während der Entwicklung konsultieren zu können.
Testdatei zur Verwendung in diesem Artikel
- → <a href="/ja/files/images/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste der Bild-Testdateien (PNG / JPG / WebP / GIF)</a>
- → <a href="/ja/files/pdf/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste der PDF-Testdateien</a>
- → <a href="/ja/files/zip/" class="text-primary-600 dark:text-primary-400 hover:underline">ZIP-Testdatei-Liste</a>
- → <a href="/ja/files/csv/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste der CSV-Testdateien</a>
- → <a href="/ja/files/json/" class="text-primary-600 dark:text-primary-400 hover:underline">Liste der JSON-Testdateien</a>
Verwandte Artikel
- → <a href="/ja/blog/file-validation-checklist/" class="text-primary-600 dark:text-primary-400 hover:underline">Checkliste zur Implementierung der Dateiverifizierung für Web-Formulare</a>
- → <a href="/ja/reference/magic-bytes/" class="text-primary-600 dark:text-primary-400 hover:underline">Magic Bytes (Datei-Signatur) Referenz</a>