Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2004, 10:02
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Redimensionar según tamaño y guardar en caché del navegador

Tengo una especie de mini galería, que usando javascript redimensiona a escala las imagenes (no está muy depurado lo hice de prueba):

Código PHP:
<link rel="stylesheet" href="./zoneCopper.css" type="text/css">
<table class="forumline">
<?
$columnas
=5;
$anchomax=100;
$altomax=100;
$reduccion="OnLoad=\"X=$anchomax;Y=$altomax;if ( this.width > X && this.height < Y ){this.height = ( X * this.height ) / this.width;this.width= X};if (this.width < X && this.height > Y ){this.width = ( Y * (this.width) ) / this.height;this.height= Y};if ( this.width > X && this.height > Y ){if (this.width/this.height>=1){{this.height = ( X * this.height ) / this.width;this.width= X}}else {this.width = ( Y * (this.width) ) / this.height;this.height= Y}}\"" ;
$origen "images"
if (
$vcarga opendir($origen)) 
    { 
?>
    <th colspan="<?=$columnas?>">Directorio: <?=$origen?></th></tr>
    <? 
    $cont
=1;
    while(
$file readdir($vcarga)) 
        { 
        if (
$file != "." && $file != ".." && (eregi(".png",$file) || eregi(".jpeg",$file) || eregi(".jpg",$file) || eregi(".gif",$file))) 
            {
            if (
$cont==0
                {
                echo 
"<tr>";
                }
            echo 
"<td bgcolor=\"#444444\" align=\"center\" width=\"17%\" ><br><a href=\"image.php?imagen=$origen/$file\" target=\"_blank\" ><img src=\"image.php?imagen=$origen/$file\" $reduccion border=\"0\"></a><br><br>$file</td>"
            if (
$cont==$columnas
                {
                echo 
"<tr>";
                
$cont=0;
                }
            
$cont++;
            } 
        } 
    
closedir($vcarga); 
    } 
if (
$cont==1)
    { echo
"</tr>";}
?>
</table>
El problema estaba que al redimensionar si se guarda en la cache del navegador la imagen, a veces al volver a cargar la página mostraba la imagen con sus dimensiones normales en vez de aplicar el javascript. Entonces, leyendo en una FAQ http://www.forosdelweb.com/showthrea...931#post274931 saqué el script para que no se guarden en el caché del navegador, y funciona.

Pero cómo en realidad lo que quiero es que no se guarde en la caché sólo en el caso de que la imagen supere las dimensiones máximas, modifique un poco el código de la FAQ:

Código PHP:
<?php 
// Cabecera de imagen 
$a getimagesize($_GET['imagen']);
header("Content-Type: " $a['mime']); 

// Cabeceras de NO CACHE 
if (($a['0']>100)||($a['1']>100))
    {
    
header"Expires: Mon, 20 Dec 1998 01:00:00 GMT" ); 
    
header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" ); 
    
header"Cache-Control: no-cache, must-revalidate" ); 
    
header"Pragma: no-cache" ); 
    }

// Leemos la imágen 
@readfile($_GET['imagen']); 

?>
Y aún así no parece que funcione . Y ya no entiendo porqué

Si alguién me pudiese iluminar

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 09/09/2004 a las 10:03