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