Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   saber extensión de un archivo solo conociendo su nombre (https://www.clubdelphi.com/foros/showthread.php?t=52719)

lucasarts_18 29-01-2008 15:48:20

saber extensión de un archivo solo conociendo su nombre
 
Hola a todos:

Tengo una función que busca la las dimensiones de una imagen

Código PHP:

function obtenerTamanoImagen($prodCod){
/**
* @Autor: Aarón García A.
* @Fecha: 28/01/2008
* @Descripción: Permite recuperar el tamaño de la imagen de un producto
*/

   
$rutaServer $_SERVER['DOCUMENT_ROOT'];
   
$rutaServer .= '/gvm/images/productos/'$prodCod;

   
$tam getimagesize($rutaServer);
   
$posicion strpos($tipoArchivo,'/' );
   
$extension substr($tipoArchivo,$posicion 1);
    
   
$imagen = array('Ancho' => $tam[0],
                          
'Alto'  => $tam[1]);
                         
   return 
$imagen
    



Esta función funciona bien si el parametro viene por ejemplo '000010.jpeg', pero yo no tengo como saber la extensión del archivo por lo tanto falla al momento de usar la función getimagesize, ya que no encuentra el fichero y es obvio ya que la ruta debe ser completa incluído la extensión del fichero para que funcione apropiadamente.

¿Cómo se puede saber la extensión de un fichero pasando como parámetro algo cómo esto 'images/producto/545678'?

545679 es el código del producto y la vez el nombre del archivo, que puede ser de distintos formatos, de ahí que necesito recuperar la extensión del fichero.

Gracias....:)

Hasta Luego .-

dec 29-01-2008 15:55:52

Hola,

Hay una función "image_type_to_extension()" para PHP 5. En los comentarios (ver enlace) se muestra alguna alternativa, no obstante. Pero pareciera algo "problemático", según yo lo entiendo, porque, acaso te obligaría a averiguar la existencia de más de un archivo/extensión, como pueda ser ".jpg" y ".jpeg". No sé. ¿Quién decide la extensión? ¿El usuario? Sea como sea, me parece problemático. Y lo único que se me ocurre es incluir la extensión en el "código". ¿Por qué no hacerlo así?

lucasarts_18 29-01-2008 16:52:06

Cita:

Empezado por dec (Mensaje 261823)
Hola,

Y lo único que se me ocurre es incluir la extensión en el "código". ¿Por qué no hacerlo así?

No puedo hacerlo así porque hasta ahora pueden ser mas de un formato de imagenes, la función que me dijiste no me sirve porque te pide el tipo de imagen como parámetro.

pero lo he resultado de la siguiente manera.

Código PHP:

function completarRutaArchivo($rutaArchivo){
/**
* @Autor: Aarón García A.
* @Fecha: 29/01/2008
* @Descripcion: Permite completar la ruta de un archivo cuando no se conoce la
*               extensión, pero sí su nombre
*/

    
$ruta = array('jpeg' => $rutaArchivo '.jpeg',
                  
'jpg'  => $rutaArchivo '.jpg',
                      
'png'  => $rutaArchivo '.png');

    if (
file_exists($ruta['jpeg']))
        return 
$ruta['jpeg'];
    elseif (
file_exists($ruta['jpg']))
        return 
$ruta['jpg'];
    elseif (
file_exists($ruta['png']))
        return 
$ruta['png'];



Código PHP:

function obtenerTamanoImagen($prodCod){
/**
* @Autor: Aarón García A.
* @Fecha: 28/01/2008
* @Descripción: Permite recuperar el tamaño de la imagen de un producto
*/

    
$rutaServer $_SERVER['DOCUMENT_ROOT'];
    
$rutaServer .= '/gvm/images/productos/'$prodCod;

    
$rutaArchivo completarRutaArchivo($rutaServer);

    
$tam getimagesize($rutaArchivo);
    
$posicion strpos($tipoArchivo,'/' );
   
$extension substr($tipoArchivo,$posicion 1);

    
$imagen = array('Ancho' => $tam[0],
                    
'Alto'  => $tam[1],
                         
'Ext'   => $extension);

    return 
$imagen;




y ahora puedo llamarlo de la siguiente manera.

Código PHP:

obtenerTamanoImagen('2'); 

Hay que seguir depurando las funciones, ya lo sé :D, pero ya tengo lo esencial para mi funcionamiento.

Gracias...

Hasta Luego .-


La franja horaria es GMT +2. Ahora son las 09:18:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi