2012-03-21 7 views
9

Estoy haciendo un controlador de carga de imágenes y me gustaría que detecte las dimensiones de la imagen que ha subido el usuario.

Así que comenzar con:

if (isset($_FILES['image'])) etc.... 

y tengo

list($width, $height) = getimagesize(...); 

¿Cómo se supone que voy a usarlos juntos?

Muchas gracias

Respuesta

19

Usted puede hacer esto como tal

$filename = $_FILES['image']['tmp_name']; 
$size = getimagesize($filename); 

// or 

list($width, $height) = getimagesize($filename); 
// USAGE: echo $width; echo $height; 

Usando la condición combinada, aquí es un ejemplo

if (isset($_FILES['image'])) { 
    $filename = $_FILES['image']['tmp_name']; 
    list($width, $height) = getimagesize($filename); 
    echo $width; 
    echo $height;  
} 
+0

Hola, gracias por su respuesta. ¿Es ese $ size una matriz de todos los atributos de la imagen? Solo busco el alto y el ancho, ¿entonces supongo que estos son elementos de esa matriz? Gracias – eric01

+0

@ eric01, No, puedes usarlo con la lista para. He actualizado con un ejemplo – Starx

+0

Oh ok Ya veo, muchas gracias por su respuesta. Saludos – eric01

0

del manual de php ejemplo muy sencillo.

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); 
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />"; 
1
list($w, $h) = getimagesize($_FILES['image']['tmp_name']); 

A partir de los documentos:

Índice 0 y 1 contiene respectivamente la anchura y la altura de la imagen.

El índice 2 es una de las constantes IMAGETYPE_XXX que indica el tipo de de la imagen.

El índice 3 es una cadena de texto con la altura correcta = "yyy" width = "xxx" cadena que se puede usar directamente en una etiqueta IMG.

lo que sólo puede hacer la lista() y no se preocupe acerca de los índices, se debe obtener la información que necesita :)

0

Prueba esto para diseños con muchos:

for($i=0; $i < count($filenames); $i++){ 

    $image_info = getimagesize($images['tmp_name'][$i]); 
    $image_width = $image_info[0]; 
    $image_height = $image_info[1]; 
} 

Prueba esto para una sola imagen:

$image_info = getimagesize($images['tmp_name']); 
$image_width = $image_info[0]; 
$image_height = $image_info[1]; 

al menos funciona para mí.

Cuestiones relacionadas