Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] Problem ze wstawieniem obrazka
Forum PHP.pl > Forum > Przedszkole
sawanb03
Witam,
mam taki problemik. Troszku nie wiem jak to opisać.
Podam stronkę, która jest w trakcie realizacji.
...
W zakładce Zilustrowanie możemy wybrać sobie wykres dla konkretnych modelów jaki ma być narysowany. Ten wykres rysuje się w czasie rzeczywistym programem gnuplot, który zwraca go do plku wykres.jpg.
Wsadzam ten wykres do mojej strony za pomocą komendy
<img src="tmp/wykres.jpeg" alt="Tekst alternatywny" />
W przeglądarkach Internet Explorer oraz Opera jest zapamiętany poprzedni wykres z tego pliku wykres.jpg, dopiero po odświeżeniu strony pokazuje się ten prawidłowy. Zaznaczam, że w pliku wykres.jpg już jest poprawnie narysowany wykres, a przeglądarka pokazuje co innego. Domyślam się, że wczytuje stronę z historii.
Trochę to zagmatwałem, ale mam nadzieję zrozumieliście mi o co chodzi.
W przeglądarce firefox wszystko chodzi idealnie.
Chciałem użyć funkcji location.reload() w JS, ale ona cały czas mi odświeża stronę.
Może mi ktoś pomóc?
Pozdrawiam
nevt
są dwa proste rozwiązania:

1. za każdym razem rób rename tego pliku, tak aby nazwa była unikalna (najlepiej losowa) i linkuj ten plik po zmianie nazwy. wtedy przeglądarka nie będzie pobierać go z cache

2. jeżeli serwer pozwala ci na ścieżki typu url możesz to tej ścieżki dodawać fikcyjny losowy parametr, wtedy też przeglądarka nie pociągnie obrazka z chache

przykład 1:
  1. <?php
  2. $file_name = 'tmp/img_'.rand(0, 10000).'.jpg';
  3. rename('tmp/wykres.jpg', $file_name);
  4. echo '<img src="'.$file_name.'" alt="Tekst alternatywny" />';
  5. ?>

przykład 2:
  1. <?php
  2. $file_name = 'tmp/wykres.jpg?x='.rand(0, 10000);
  3. echo '<img src="'.$file_name.'" alt="Tekst alternatywny" />';
  4. ?>

powodzenia.
sawanb03
Jest to jakieś rozwiązanie, ale pojawia się następny problem, mianowicie te pliki będą tworzyły się w nieskończoność za każdym razem jak będziemy chcieli narysować jakiś wykres. Jak ten plik teraz skasować zaraz po tym jak się ładnie stronka wyświetli z wykresem.
Funkcja
unlink($file_name);
zaraz po
echo '<img src="'.$file_name.'" alt="Tekst" />';
Nie daje poprawnego rozwiązania.


EDIT:
Mam pomysł na rozwiązanie tego problemu, ale nie wiem jak porównać dwie zmienne (banalne pytanie) biggrin.gif
Wyszukam sobie w katalogu wszystkie pliki i wrzucę je do zmiennej jak teraz porównać czy ta zmienna jest z rozszerzeniem jpeg.
Próbuje tak:
  1. <?php
  2. if ($entry=="*.jpeg")
  3. ?>


ale coś ta gwiazdka nie działa sciana.gif

edit2:
Poradziłem sobie
  1. <?php
  2.  
  3.   $d = dir("/tmp");
  4.   echo "Handl: ".$d->handle."<br>";
  5.   echo "Pat: ".$d->path."<br>";
  6.   while($entry=$d->read()) {
  7.      echo $entry."<br>";
  8.      if (eregi('img_[0-9]+.jpeg', $entry))
  9.      {
  10.      unlink('tmp/'.$entry);
  11.      }
  12.   }
  13.   $d->close();
  14.   echo 'Wybie';
  15. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.