Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willwalker

[Resolvido] Cache de Imagens

Recommended Posts

Simplesmente só quero que obrigue o IE a não fazer o cache, das imagens, sempre deletando do computador do usuário em segundos. Para que quando eu faço o upload e depois crio o thumb, ele não fique com o cache da imagem anterior, porque para eu ver a imagem que acabei de recortar tenho que dar um F5. Alguem pode me ajudar ?

 

Abraços Walker http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma que não implica em configuração nenhuma do php/apache ou navegador do visitante é fazer algo assim:

 

<img src="imagem.jpg?token=<?php echo sha1(time().rand(0, 100)); ?>" alt="..." />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simplesmente só quero que obrigue o IE a não fazer o cache, das imagens, sempre deletando do computador do usuário em segundos. Para que quando eu faço o upload e depois crio o thumb, ele não fique com o cache da imagem anterior, porque para eu ver a imagem que acabei de recortar tenho que dar um F5. Alguem pode me ajudar ?

 

Abraços Walker http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Essa é a forma mais fácil que conheço, apesar de em alguns casos não ser totalmente eficiente:

 

Arquivo imagem.php

if ( isset( $_REQUEST[ "imagem" ] ) ){
    $file = basename( $_REQUEST[ "imagem" ] );
    
    if ( file_exists( $file ) ){
        header( "Expires: Mon, 1 Jan 1990 00:00:01 GMT" );
        header( sprintf( "Last-Modified: %s" , gmstrftime( "%a, %d %b %Y %H:%M:%S %Z" , time() ) ) );
        header( "Cache-Control: no-store, no-cache, must-revalidate" );
        header( "Cache-Control: post-check=0, pre-check=0", true );
        header( "Pragma: no-cache" );
        header( "Content-type: image/jpeg;" );
        header( sprintf( "Content-Length: %d" , filesize( $file ) ) );
    
        readfile( $file );
    }
}

E no arquivo que irá mostrar a imagem:

 

 $file    = "imagem.jpg";
 $unico    = md5( sprintf( "%s%s" , $file , mktime() ) );
 
 printf( "<img src='imagem.php?imagem=%s&%s' alt='imagem' />" , $file , $unico );

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm... da uma olhada nos script sobre o assunto que tem no Laboratorio de Scripts acho que vai encontrar funções que possam te ajudar a fazer isto por la.

 

valww =]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.