513 Stimmen

Wie erhält man die Dateierweiterung in PHP?

Ich möchte die Dateierweiterung eines hochgeladenen Bildes abfragen, aber ich erhalte nur ein Array zurück.

$userfile_name = $_FILES['image']['name'];
$userfile_extn = explode(".", strtolower($_FILES['image']['name']));

Gibt es eine Möglichkeit, nur die Erweiterung selbst zu erhalten?

1320voto

ThiefMaster Punkte 297146

Die Verwendung von String-Funktionen ist nicht erforderlich. Sie können etwas verwenden, das tatsächlich für das, was Sie wollen, konzipiert ist: pathinfo() :

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);

67voto

Andrey Punkte 815

Das wird auch funktionieren:

$array = explode('.', $_FILES['image']['name']);
$extension = end($array);

37voto

Julien Punkte 1286

Eine bessere Methode ist die Verwendung von strrpos + substr (schneller als explode dafür):

$userfile_name = $_FILES['image']['name'];
$userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);

Um jedoch den Typ einer Datei zu überprüfen, ist die Verwendung von mime_content_type die bessere Methode: http://www.php.net/manual/en/function.mime-content-type.php

24voto

Balan Punkte 241

Für den Mime-Typ können Sie Folgendes versuchen

$image = getimagesize($_FILES['image']['tmp_name']);

$image['mime'] gibt den Mime-Typ zurück.

Diese Funktion erfordert keine GD-Bibliothek. Sie können die Dokumentation finden aquí .

Dies gibt den Mime-Typ des Bildes zurück.

Einige Leute verwenden die $_FILES["file"]["type"] aber es ist nicht zuverlässig, da es vom Browser und nicht von PHP gegeben wird.

Sie können verwenden pathinfo() wie von ThiefMaster vorgeschlagen, um die Bilderweiterung abzurufen.

Vergewissern Sie sich zunächst, dass das Bild in der Entwicklungsphase erfolgreich hochgeladen wird, bevor Sie irgendwelche Operationen mit dem Bild durchführen.

12voto

ilanco Punkte 9165

Wie wäre es mit

$ext = array_pop($userfile_extn);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X