Obtener la extensión de un archivo subido con php

$_FILES esta variable identificara el archivo temporal subido al servidor y contiene la información del mismo. en este post veremos alguna información que podemos obtener de este array tanto del mismo archivo como del proceso “upload”.

 

 

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

Si imprimiéramos el array “$_FILES[file1]” su estructura seria la siguiente:

Array
(
    [archivo] => Array
        (
            [name] => MyFile.txt
            [type] => text/plain 
            [tmp_name] => /tmp/php/php1h4j1o 
            [error] => 0
            [size] => 123   (el tamaño en bytes)
        )
)

Con una simple función podemos obtener la extensión

$extencion = $this->get_extension($_FILES['archivo']['name']);

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

O bien

$extension = end(explode(".", $_FILES['archivo']['name']));

 

Si deseas mostrar un mensaje apropiado al error encontrado sería algo así:

function FileUploadErrorMsg($error_code) {
    switch ($error_code) { 
        case UPLOAD_ERR_INI_SIZE: 
            return "El archivo es más grande que lo permitido por el Servidor."; 
        case UPLOAD_ERR_FORM_SIZE: 
            return "El archivo subido es demasiado grande."; 
        case UPLOAD_ERR_PARTIAL: 
            return "El archivo subido no se terminó de cargar (probablemente cancelado por el usuario)."; 
        case UPLOAD_ERR_NO_FILE: 
            return "No se subió ningún archivo"; 
        case UPLOAD_ERR_NO_TMP_DIR: 
            return "Error del servidor: Falta el directorio temporal."; 
        case UPLOAD_ERR_CANT_WRITE: 
            return "Error del servidor: Error de escritura en disco"; 
        case UPLOAD_ERR_EXTENSION: 
            return "Error del servidor: Subida detenida por la extención";
      default: 
            return "Error del servidor: ".$error_code; 
    } 
}

if ($_FILES["archivo"]["error"] > 0) {
  echo FileUploadErrorMsg($_FILES["archivo"]["error"]);
  exit;
}
else {
  echo "Archivo cargado correctamente :).";
}

 

Subiendo archivos con KumbiaPHP Parte 1 – 3

Leave a Reply

Your email address will not be published. Required fields are marked *