Min måde at omgå der er ved at have et script som hedder:
showImage.php:
$file = rawurldecode($_GET['file']);
header( "Content-type: image/jpeg" );
@readfile( $file );
som altså er et php script som viser et jpeg billede.
image source i HTML filen hedder så noget lignende:
$TMP = rawurlencode('./minfil.jpg');
'showImage.php?file='.$TMP.'&dummy='.time().rand(0,99);
Dummy parametren er udelukkende for snyde FF til at tro
at der er tale om en unik fil, som skal downloades hver gang.
Mvh,
Frederik
ask wrote:
> Hej
>
> Håber I kan hjælpe. Jeg er ved at lave en hjemmeside hvor der skal
> vises nogle bestemte billeder. Url'en til billederne skal altid være
> den samme selvom billederne ændrer sig, dvs. for at vise et nyt
> billede skal billedet f.eks. overskrives med et nyt. For at gøre
> setuppet dynamisk tænker jeg at url'en til billedet bliver en php-fil
> der så redirecter til det faktiske billede. Flg. kode beskriver
> processen:
>
> ================ html
> <html><head>
> <meta http-equiv="expires" content="0">
> <meta http-equiv="pragma" content="no-cache">
> <meta http-equiv="cache-control" content="no-cache">
> <meta http-equiv="cache-control" content="no-store">
> </head><body>
> ... <img src='billede.php' /> ...
> </body></html>
>
> ================ billede.php
> <?php
> include ( ... db connection ... ):
> header("Cache-Control: no-store, no-cache, must-revalidate");
> header("Expires: Mon, 01 Jan 2000 01:00:00 GMT");
>
> if(0<mysql_num_rows($res=mysql_query ("SELECT path_file FROM table")))
> {
> list ( $path_file ) = mysql_fetch_row( $res ));
> if ( $path_file )
> header ( "LOCATION: $path_file" ); // send browser to image
> else
> header ( "LOCATION:
www.here.com/noimg.gif");
> }
> ?>
>
> Men lige meget hvad jeg skriver af koder for at undgå caching virker
> det ikke overbevisende i firefox. IE klarer det fint og når jeg
> udskriver $path_file findes det korrekte billede. Grunden til at url'en
> til billedet helst ikke skal ændres er, at systemet håndterer
> billeder på andres hjemmesider - således at de ikke skal tænke over
> noget, jeg sørger for at de korrekte billeder vises.
>
> Håber I kan fortælle mig at jeg har overset noget indlysende. Findes
> der f.eks. nogle firefox-specifikke måder at styre caching på
> (ligesom der findes firefox-specifikke css-styles)?
>
> Takker - Ask
>