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);
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');
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!