Bir php sayfasında resim upload ediyorum server da bir klasöre kopyalanıyor. Fakat tekrar upload edip aynı resim yerine başkasını yazdığımda (klasördeki resim değişiyor bundan eminim) aynı isimde tekrar kaydediliyor. Bu konuda resim dosyasının adını random bi değer ile birleştirerek kaydetmeyi öneriyorlar fakat aslında bu sorunun cevabı çok basit. Sadece şu header 'ların eklenmesi gerekiyor.

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");

ama bu kodları yazdığım halde ne IE ne de Firefox 'da cache mekanizması değişmeden devam ediyor. Resim upload ediliyor ama cache hiç bir şekilde sıfırlanmıyor yukarıdaki kodları kullanmama rağmen. Browser 'ın cahce yapmaması için ne yapabilrim? Yada nerede hata yapıyorum? Şimdiden teşekkürler.

soruldu: 07 Kas '12, 03:54

numankaraaslan's gravatar image

numankaraaslan
1.8k253749
cevap kabul oranı: 19%

değiştirildi: 07 Kas '12, 05:17

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Merhabalar Tarayıcının yüklenen dosyası Cache'den almamasını, o dosyaya bir anahtar değer vererek sağlayabilirsiniz. Bu işlemi her türlü dosya(.js .css .jpg .png vs) için uygulayabilirsiniz.

Örnek PHP kodu :

$dizi="ABCDEFGHJKLMNOPRSTYVZ1234567890";
$anahtar = "";
//Anahtarın uzunluğunu 70
for($i=0; $i<=70; $i++)
{
    $randomSayi = rand(0, 31); //Dizinin uzunluğu
    $anahtar.=$dizi[$randomSayi];
}
echo "anahtar = ".$anahtar;

?>
<img src="resim/resimAdi.png?anahtar=<?php echo $anahtar ?>"></img>

Kolay gelsin.

permanent link

cevaplandı: 07 Kas '12, 14:26

israfil%20kara's gravatar image

israfil kara
10126
cevap kabul oranı: 14%

mantıksal olarak doğru cevap aslında ama durumu şöyle açıklayayım. Benim kullandığım sistemde dosya adı kullanıcı id si gibi sabit bir değerle isimlendiriliyor. Bu yüzden bu şekilde bi random değer veremiyorum. Dosya adı sürekli sabit kalmak zorunda yani. Bu yüzden browser sayfayı cahce 'lemezse sorun kalmayacak. Bu şekild random değer verme çözümünü uygulamam çok zahmetli olacağı için işi kökten çözmeyi istiyorum.

(08 Kas '12, 01:43) numankaraaslan numankaraaslan's gravatar image
1

Tarayacının Cache'den almasını engellemek için gerekli kodları zaten kullanıyorsunuz.

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache"); header("Pragma: no-cache");

random anaharı kullanırken dosya adında bir değişiklik yapılmamakta. Dosya adını istediğiniz gibi belirleyebilirsiniz.

Eğer doğru anladıysam kodu şöyle güncellersek olacaktır.

echo "< img src='resim/$kullaniciId"."?anahtar=$anahtar ?>'>";

(08 Kas '12, 03:56) israfil kara israfil%20kara's gravatar image

evet sonradan anladım dosya adı aynı kaldığı halde random numara ile farklı gibi görünüyor. teşekkürler.

(08 Kas '12, 03:57) numankaraaslan numankaraaslan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×4

Soruldu: 07 Kas '12, 03:54

Görüntüleme: 856 kez

Son güncelleme: 08 Kas '12, 03:57

powered by BitNami OSQA