2013-02-07 4 views
9

Voglio ottenere l'estensione dell'immagine caricata.Ottieni l'estensione dell'immagine

Come noto, il modo migliore è la funzione getimagesize().

ma il mimo di questa funzione restituisce image/jpeg quando l'immagine ha l'estensione .jpg o .JPEG.

Come ottenere esattamente l'estensione?

+0

Perché ti preoccupa l'estensione? Potrei caricare un file jpeg con un'estensione '.png', ma saresti ancora in grado di vedere che è un jpeg con altri metodi. – Eric

risposta

17

è possibile utilizzare image_type_to_extension funzione con il tipo di immagine restituita da getimagesize:

$info = getimagesize($path); 
$extension = image_type_to_extension($info[2]); 
20
$ext = pathinfo($filename, PATHINFO_EXTENSION); 
4
$image = explode(".","test.file.hhh.kkk.jpg"); 
echo end($image); 
+0

Davvero? test.file.jpg – dfsq

+0

per quanto riguarda i file contenenti. nel nome? – phpalix

+0

@dfsq, mi dai test.file.jpg ma ora controlla gli uomini con 4 punti. –

2

Un altro modo per farlo:

$ext = strrchr($filename, "."); // .jpg 
0

Si può anche esplodere il nome del file con punti e prendi la fine dell'array come segue:

$ext = end(explode('.', 'image.name.gif')); 

Secondo: Two different ways to find file extension in PHP

e un nuovo modo per voi lol:

$ext = explode('.', 'file.name.lol.lolz.jpg'); 
echo $ext[count($ext) - 1]; 
6

È inoltre possibile utilizzare strrpos e le funzioni SUBSTR per ottenere l'estensione di qualsiasi file

$filePath="images/ajax-loader.gif"; 

$type=substr($filePath,strrpos($filePath,'.')+1); 

echo "file type=".$type; 

output: gif

se si desidera che l'estensione .gif come

$type=substr($filePath,strrpos($filePath,'.')+0); 

uscita: .gif

0

Per coloro che vogliono verificare se il tipo di immagine è JPEG, PNG o ecc È possibile utilizzare la funzione exif_imagetype . Questa funzione legge i primi byte di un'immagine e ne controlla la firma. Ecco un semplice esempio da php.net:

<?php 
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) { 
    echo 'The picture is not a gif'; 
} 
?> 
0
$size = getimagesize($filename); 
$ext = explode('/', $size['mime'])[1]; 
0
$file_ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION); 

o per renderlo pulito

$filename= $_FILES["file"]["name"]; 
$file_ext = pathinfo($filename,PATHINFO_EXTENSION);