Foros del Web » Programando para Internet » PHP »

no me funciona el thumb

Estas en el tema de no me funciona el thumb en el foro de PHP en Foros del Web. estoy ocupando este script para hacerlo: <?php $anchura=$_GET['ancho']; $hmax= $_GET['alto']; $nombre=basename($_GET['ruta']); $datos = getimagesize($nombre); if($datos[2]==1){$img = @imagecreatefromgif($nombre);} if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);} if($datos[2]==3){$img = @imagecreatefrompng($nombre);} $ratio = ...
  #1 (permalink)  
Antiguo 29/08/2006, 10:33
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 6 meses
Puntos: 0
no me funciona el thumb

estoy ocupando este script para hacerlo:

<?php
$anchura=$_GET['ancho'];
$hmax= $_GET['alto'];
$nombre=basename($_GET['ruta']);
$datos = getimagesize($nombre);
if($datos[2]==1){$img = @imagecreatefromgif($nombre);}
if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if($datos[2]==3){$img = @imagecreatefrompng($nombre);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if($datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if($datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb);
?>

y la llamo:

http://www.patrimoniovina.cl/admplus...ho=120&alto=80

pero me envia un error:

No se puede mostrar la imagen “http://www.patrimoniovina.cl/admplus...o=120&alto=80” porque contiene errores.

no puedo encontrar el porque...
  #2 (permalink)  
Antiguo 29/08/2006, 10:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías quitar las @ de tu código si estás en fase de desarrollo, así veras mensajes de error más claros.

De hecho si ejecutas el link directo del error veras:
Cita:
<br />
<b>Fatal error</b>: Call to undefined function: imagegif() in <b>/webfolders/patrimoniovina.cl/admplus/global/gl-thumb-img.php</b> on line <b>14</b><br />
Tu versión de GD no tiene soporte para GIF .. intenta usar otro tipo de imagenes: PNG o JPG

De hecho cuando pruebas un jpg (de los mismos que tienes en tu servidor):
http://www.patrimoniovina.cl/admplus...ho=120&alto=80

observa los mensajes de error:
getimagesize(): Unable to access 20060829102029_1.jpg

Eso es por qué le pasas como ruta un URL . .debes pasarle una ruta absoluta. Tambien puede ser por permisos de lectura de ese directorio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/08/2006 a las 11:06
  #3 (permalink)  
Antiguo 29/08/2006, 11:22
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 6 meses
Puntos: 0
le saque los @ y probe con un jpg y = no me funciona...

miren:

http://www.patrimoniovina.cl/admplus...ho=120&alto=80


  #4 (permalink)  
Antiguo 29/08/2006, 11:29
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 6 meses
Puntos: 0
la carpeta img-galeria tienes todos los privilegios y probe con la url http://www.patrimoniovina.cl/admplus...ho=120&alto=80

pero me envia el mismo mensaje de error!.
  #5 (permalink)  
Antiguo 29/08/2006, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te hice el comentario ya al respecto:

Cita:
Eso es por qué le pasas como ruta un URL . .debes pasarle una ruta absoluta. Tambien puede ser por permisos de lectura de ese directorio.
Tu le pasas a tu script que genera el "thumbnail" un URL ..

También haces:
$nombre=basename($_GET['ruta']);

Fijate en el mensaje de error que te devuelve .. leelo bien:

Cita:
Unable to access vb.jpg in ....
Siempre que PHP dá un mensaje de error sobre acceso a un archivo muestra la ruta completa si es que no se refiere al mismo directorio y en el script (con línea) que lo origina.

Con "basename()" te quedas con el "nombre" sólo del archivo que pueda contener una ruta dada .. y las funciones que usas neceistan de la ruta -completa-. NO uses basename() en este caso.



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 29/08/2006, 11:41
Avatar de giotari
Usuario no validado
 
Fecha de Ingreso: mayo-2003
Ubicación: Chile
Mensajes: 295
Antigüedad: 14 años, 6 meses
Puntos: 0
ahora si... efectivamente era el
Cita:
$nombre=basename($_GET['ruta']);
lo cambie por
Cita:
$nombre=$_GET['ruta'];
y funciono sin problemas,


muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.