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:

* $_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

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.


$this->obtenerExtensionFichero($_FILES['archivo']['name']);

function obtenerExtensionFichero($str)
{
        return end(explode(".", $str));
}

Tags de búsquedas:

extension imagen php, coger extension archivo php, sacar php, sacar la extension de un archivo php, sacar la extension de documento con php, saber la extension de una imagen con php, que es mas rapido extraer o comprobar archivos, php conocer extension de una imagen, obtener el tipo de extensionde un documento php, mostrar foto de un fichero php

Posts Relacionados:

  • obtener el nombre del dominio con javascript Pues algo que acabo de hacer y no sabía. Sacar el nombre del dominio de la web en la que estás. Mediante JavaScript podemos obtener la información del dominio de...
  • comprimir y descomprimir un archivo con .gz GZip Comprimir con Gzip y Zip Los archivos comprimidos utilizan menos espacio en disco y se descargan más rápido que los grandes, los archivos sin comprimir. Puede comprimir archivos de Linux...
  • comprobar si existe un fichero con php y linux Se puede comprobar si un fichero existe en linux con el siguiente comando: [ -e /path/completo/a_mi_archivo ] && echo "El fichero existe" || echo "El fichero no existe" Posibles parámetros...
  • crear marcas de agua con php Pues hace tiempo que implementé este script para crear marcas de agua en una tienda online para marcar productos como agotados y no me acordaba que lo tenía. Es un...
  • Parseando XML con PHP. Lo más fácil y simple Una de las maneras más simples de parsear los datos de un xml es usar la función de php simpleXML que viene integrada con el apache, por lo que su...

5 Comentarios en “Obtener la extension de un archivo subido con php”

  1. Silent Hero dice:

    Mmmm a decir verdad, el código si sirve. Hice pruebas con un archivo llamado chat.chat (Es un .zip, su nombre completo es chat.chat.zip) y me devuelve “zip” y no devuelve “chat” como dice en un comentario.
    Gracias por el aporte ;)

  2. Alejandro dice:

    Super genial(:

  3. elitepep dice:

    listo muy listo si señor gracias pedro.

  4. caca dice:

    ahahhaahaha este sujeto solo uso un explode despues del punto ._.
    se ve que no saves nada de programacion facilmente tu codigo es bulnerable

    si subo una imagen con nombre caca y le pongo caca.jpg pero en realidad se trata de otro archivo con nombre caca.jpg estas frito

    NO sirve para comprovar que se trata de una imagen

    • Pedro Ventura dice:

      La función solo sirve para sacar la extensión de un archivo subido, imagen o lo que sea. No estoy explicando nada más en el artículo que no sea como obtener la extensión del fichero subido.

      Claro esta que si tu estas subiendo un archivo puta.php.jpg va a pensar que es una imagen, pero ya es cuestion de cada uno procesar el siguiente paso que es la subida y como se guarda el archivo subido.

      Yo no explico como subirlo y sobretodo como guardarlo, que aqui es donde te has pasado de listo. Y ahora te voy a explicar que es lo que hago. Lo más normal cuando tienes un formulario para que suban una imagen, es que la imagen se guarde en temporal. A partir de la imagen o supuesta imagen que te han subido, crear una imagen nueva, y está aqui el truco para dar seguridad a la aplicacion. Mediante las funciones imagecreatefromgif(), imagecreatefrompng() o imagecreatefromjpeg() y el resto de funciones relacionadas para crear imágenes se crea una imagen nueva a partir de la imagen subida y borrando la que el usuario ha subido. Así el código es seguro. Pero claro yo no he hablado nada de esto, simplemente mi artículo dice como sacar la extensión.

Deja tu comentario

Nombre:

Email (no será publicado)

Website

Comentario

Colabora, añade +1 a mi blog!!