Pagina 1 din 1

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de adrian_ady
M-am lovit de aceasta problema:
In cazul unui anunt postat, userul respectiv poate adauga 2 imagini de referinta. Le poate sterge si incarca altele dar in acest caz trebuie golit cacheul browserului pentru a elimina imaginile memorate in acele pozitii(imaginile sunt chemate prin fancybox, miniaturile(small) se schimba dupa primul refresh al paginii insa imaginile big isi pastreaza vechile foto. Eu am specificat in pagina ca trebuie recurs la stergere cache dar banuiesc ca nu toti stiu ce sa faca deci ar fi mult mai bine ca la upload foto sa se rezolve automat acest inconvenient. Ce trebuie sa adaug in scriptul de upload?

Cod: Selectaţi tot

if(isset($_POST['Upload'])){
        if($_GET['addfoto']=='foto')
        $upload = new Upload();
        $upload->uploadImageThumbRenameResize('file',"".$cale_imagini,($total_imagini + 1),512000,800,135,array("jpeg"));  
        header('Location: '.$_SERVER['PHP_SELF']);
} 
$cale_imagini este:

Cod: Selectaţi tot

$cale_imagini = "foldere/anunturi/".$data_inregistrare."-".$login->getMemberId()."/id_".$_GET['id']; 
La chemare imagine in Fancybox:

Cod: Selectaţi tot

<?
     for($i = $first_foto; $i <= $total_fotos; $i++)
     {  
    echo '<a href="'.$cale.'/'. $i .'_big.jpg" rel="next'.$id.'"><img src="'.$cale.'/'. $i .'_small.jpg" width="135" alt="&nbsp; '. $i .' &nbsp;" title="Foto '.$tip_anunt.'" alt="" /></a>';
     }
?>

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de MarPlo
Pentru inoirea imaginii incarcate in browser dupa upload, se adauga un "?query" aleator la adresa "src" a imaginii (src="image.png?h=numar_aleator").
Incearca acest cod la partea de chemare imagine in Fancybox:

Cod: Selectaţi tot

<?php
$hash_img = '?h='. time();
for($i = $first_foto; $i <= $total_fotos; $i++) {  
  echo '<a href="'.$cale.'/'. $i .'_big.jpg'. $hash_img .'" rel="next'.$id.'"><img src="'.$cale.'/'. $i .'_small.jpg'. $hash_img .'" width="135" alt="&nbsp; '. $i .' &nbsp;" title="Foto '.$tip_anunt.'" alt="" /></a>';
}
?>

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de adrian_ady
Am incercat, nu se schimba nimic, este lafel ca inainte. Uite ce am in .htaccess , poate nu e bine aici :

Cod: Selectaţi tot

Header set Cache-Control "max-age=172800, public, must-revalidate"

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de MarPlo
Pune max-age=0 la partea de cod din .htaccess, sau /si in codul php unde afisezi imaginea adauga la inceput:

Cod: Selectaţi tot

header('Cache-Control: no-cache, no-store, must-revalidate');
// apoi afisare imagini ...  
- Testeaza aceste modificari dupa ce ai sters cache-ul la browser.

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de adrian_ady
Am pus '0' in .htaccess si merge. Nu-mi dau seama daca-mi va afecta faptul ca nu mai pastreaza nimic in cache dar... asta e!
Multumesc mult!

Reinoire imagine in browser dupa readaugare pe server

Scris: Mar Apr 28, 2015
de MarPlo
Afecteaza doar traficul pe server, adica va incarca mereu pagina de pe server, nu o mai retine sa o preia din cache.

Reinoire imagine in browser dupa readaugare pe server

Scris: Mie Apr 29, 2015
de adrian_ady
Nu am avut liniste, de cum m-am trezit am reluat probele si am reusit. Practic trebuie inlocuit '#' cu '?=' adica

Cod: Selectaţi tot

$hash_img = '?='. time();