Cómo obtener la extensión de archivo en PHP? [duplicar]


Posible Duplicado:
¿Cómo extraer una extensión de archivo en PHP?

Deseo obtener la extensión de archivo de una imagen que estoy cargando, pero solo obtengo una matriz de nuevo.

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

¿Hay alguna manera de obtener la extensión en sí?

Author: Community, 2012-04-29

5 answers

No es necesario usar funciones de cadena. Usted puede utilizar algo que realmente diseñado para lo que quieres: pathinfo():

$path = $_FILES['image']['name'];
$ext = pathinfo($path, PATHINFO_EXTENSION);
 1047
Author: ThiefMaster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-08 19:11:29

Esto también funcionará:

$array = explode('.', $_FILES['image']['name']);
$extension = end($array);
 50
Author: Andrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-28 10:57:50

Un mejor método es usar strrpos + substr (más rápido que explotar para eso):

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

Pero, para verificar el tipo de un archivo, usar mime_content_type es una mejor manera : http://www.php.net/manual/en/function.mime-content-type.php

 24
Author: Julien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-28 10:50:54

Puedes probar con esto para el tipo mime

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

$image['mime'] devolverá el tipo mime.

Esta función no requiere biblioteca GD. Puede encontrar la documentación aquí.

Esto devuelve el tipo mime de la imagen.

Algunas personas usan el $_FILES["file"]["type"] pero no es confiable como ha sido dado por el navegador y no por PHP.

Puede usar pathinfo() como ThiefMaster sugirió para recuperar la extensión de imagen.

Primero asegúrese de que la imagen está siendo cargado con éxito durante el desarrollo antes de realizar cualquier operación con la imagen.

 21
Author: Balan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-28 23:33:47

¿Qué tal

$ext = array_pop($userfile_extn);
 12
Author: ilanco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-28 22:48:33