Hoe krijg ik de bestandsextensie in PHP?

Ik wil de bestandsextensie krijgen van een afbeelding die ik upload, maar ik krijg gewoon een array terug.

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

Is er een manier om de extensie zelf te krijgen?


Antwoord 1, autoriteit 100%

Het is niet nodig om tekenreeksfuncties te gebruiken. Je kunt iets gebruiken dat echt is ontworpen voor wat je wilt: pathinfo():

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

Antwoord 2, autoriteit 5%

Dit werkt ook:

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

Antwoord 3, autoriteit 3%

Een betere methode is het gebruik van srrpos + substr (sneller dan exploderen daarvoor):

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

Maar om het type bestand te controleren, is het gebruik van mime_content_type een betere manier:
http://www.php.net/manual/en/function .mime-content-type.php


Antwoord 4, autoriteit 2%

Je zou dit kunnen proberen voor het mime-type

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

$image['mime']geeft het mime-type terug.

Voor deze functie is geen GD-bibliotheek vereist. Je kunt de documentatie hiervinden.

Dit geeft het mime-type van de afbeelding terug.

Sommige mensen gebruiken de $_FILES["file"]["type"]maar het is niet betrouwbaar zoals aangegeven door de browser en niet door PHP.

U kunt pathinfo()gebruiken zoals ThiefMaster heeft voorgesteld om de afbeeldingsextensie op te halen.

Zorg er eerst voor dat de afbeelding succesvol wordt geüpload terwijl deze in ontwikkeling is voordat u bewerkingen met de afbeelding uitvoert.


Antwoord 5

Wat dacht je van

$ext = array_pop($userfile_extn);

Other episodes