Entrada

Obtener la extension de un archivo subido con php

En este post voy a explicar como comprobar las extensiones de una imagen con una simple función en php podremos sacar la extensión de un archivo, ya sea una imagen o cualquier tipo de documento, subido mediante un formulario en php. Primero algo de teoría. Para acceder a las propiedades del archivo o imagen php nos brinda el array $_FILES con las siguientes propiedades, en donde archivo es el nombre del campo con el cual se envió la imagen desde el formulario:

1
2
3
4
* $_FILES['archivo']['size']: tamaño en bytes del archivo o imagen recibido
* $_FILES['archivo']['type']: tipo mime del archivo, por ejemplo image/gif
* $_FILES['archivo']['name']: nombre original del archivo
* $_FILES['archivo']['tmp_name']: nombre del archivo temporal que se utiliza para almacenar en el servidor el archivo recibido

Ejemplo de un array

1
2
3
4
5
6
7
8
9
10
11
Array
(
    [file1] => Array
        (
            [name] => MyFile.txt
            [type] => text/plain 
            [tmp_name] => /tmp/php/php1h4j1o 
            [error] => 0
            [size] => 123   (el tamaño en bytes)
        )
)

Ahora conociendo un poquito más como funciona el array $_FILES podremos sacar muy fácilmente la extensión del archivo subido y por ejemplo comprobar que es una imagen .jpg, .jpeg, .png o .gif para nuestra galería de fotos o lo que sea. No permitiendo subir archivos .txt, .exe o cualquier otro archivo.

1
2
3
4
5
6
7
$this->obtenerExtensionFichero($_FILES['archivo']['name']);

function obtenerExtensionFichero($str) 
{
        return end(explode(".", $str));
}
Esta entrada está licenciada bajo CC BY 4.0 por el autor.