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