Reinoire imagine in browser dupa readaugare pe server
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
adrian_ady
- Mesaje:80
Reinoire imagine in browser dupa readaugare pe server
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=" '. $i .' " title="Foto '.$tip_anunt.'" alt="" /></a>';
}
?>
MarPlo
Mesaje:4343
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=" '. $i .' " title="Foto '.$tip_anunt.'" alt="" /></a>';
}
?>
adrian_ady
Mesaje:80
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"
MarPlo
Mesaje:4343
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.
adrian_ady
Mesaje:80
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!
MarPlo
Mesaje:4343
Afecteaza doar traficul pe server, adica va incarca mereu pagina de pe server, nu o mai retine sa o preia din cache.
adrian_ady
Mesaje:80
Nu am avut liniste, de cum m-am trezit am reluat probele si am reusit. Practic trebuie inlocuit '#' cu '?=' adica