Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Dateitypen in PHP zuverlässig erkennen, um Probleme beim Hochladen zu vermeiden?

Wie kann ich Dateitypen in PHP zuverlässig erkennen, um Probleme beim Hochladen zu vermeiden?

Linda Hamilton
Freigeben: 2024-11-30 09:49:10
Original
689 Leute haben es durchsucht

How Can I Reliably Detect File Types in PHP to Prevent Upload Issues?

Dateityp in PHP erkennen: Fehlerbehebung bei Upload-Problemen

Bei der Überprüfung von Bilddateitypen mit $_FILES['fupload' treten Probleme auf ]['Typ']. Benutzer haben inkonsistente Fehlermeldungen gemeldet, die darauf hinweisen, dass diese Methode möglicherweise nicht zuverlässig ist.

Um eine genaue Erkennung des Dateityps sicherzustellen, sollten Sie einen alternativen Ansatz in Betracht ziehen:

Verwendung von mime_content_type

Ihr Vorschlag, mime_content_type($_FILES['fupload']['type']) zu verwenden, ist teilweise richtig. Es wird jedoch immer noch nicht empfohlen, sich ausschließlich auf den vom Benutzer bereitgestellten Wert (d. h. den MIME-Typ der Datei) zu verlassen. Benutzer können diese Informationen leicht manipulieren.

Eine zuverlässigere Methode

Für Bilddateien ist die Verwendung der exif_imagetype-Funktion wie folgt eine bevorzugte Methode zur Typüberprüfung:

$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
Nach dem Login kopieren
  • exif_imagetype gibt den erkannten Bildtyp zurück (z. B. IMAGETYPE_PNG)
  • Das Array $allowedTypes definiert die zulässigen Bildtypen
  • Die Variable $error gibt an, ob der Dateityp nicht zulässig (True) oder gültig (False) ist

Finfo-Funktionen verwenden

Wenn Ihr Server unterstützt die Finfo-Erweiterung. Sie können Funktionen wie finfo_file verwenden, um detaillierte Dateiinformationen, einschließlich ihres MIME-Typs und anderer Attribute, zu erhalten:

$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file($_FILES['fupload']['tmp_name']);
$error = ($mime_type != 'image/gif' && $mime_type != 'image/png' && $mime_type != 'image/jpeg');
Nach dem Login kopieren

Durch den Einsatz dieser Methoden können Sie Dateitypen zuverlässig überprüfen und unerwartete Fehler während verhindern Datei-Uploads.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateitypen in PHP zuverlässig erkennen, um Probleme beim Hochladen zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage