Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie obrazka i usuwanie
Forum PHP.pl > Forum > Przedszkole
dangesamurai
Witam!!
postaram sie wytlumaczyc problem bez wklejania kodu zeby bylo przejrzyscie:

1. Ogolnie generuje obrazek zaleznie od wprowadzonych parametrow przez form.
2. zapisuje go pod losowa nazwa (ie nie wyswietla aktualnego obrazka gdy jest stala nazwa - kombinowalem cache - nie daje rady ;])
3. wyswietlam obrazek za w PHP za pomocą echo '<img src=... itd
do tad jest ok
jednak ta metoda strasznie mi sie zasmieci serwer WIEC:
4. usuwam plik graficzny olosowej nazwie przez unlink.

i wtedy obrazek sie nie wyswietla (wnioskuje ze php w calosci wykonuje sie a pozniej "wyrzuca" html.

z gory dzieki za sugestie.
zordon
ale o co chodzi? usuwasz i nie działa czy chcesz usuwać i nie wiesz jak (sam napisałeś jaką to funkcją zrobić) questionmark.gif?
Trochę jaśniej poproszę
dangesamurai
tak jak napisalem zordon:
jezeli nie usuwam obrazka na koncu skryptu to on sie wyswietla
a jesli dodam polecenie usuwajace na koncu skryptu to nie wyswietla obrazka

wniosek skrypt usuwa obrazek zanim go wyswietli. (wyswietlam przez
  1. echo "<img src={$nazwa}>";

i tu pytanie o sugestie co zrobic zeby wyswietlic orazek a pozniej go usunac questionmark.gif
erix
Robisz garbage collector, który jest odpalany cronem np. co 24h.

A jak sprawdzać, co do usunięcia? Iterujesz po katalogu i sprawdzasz czas np. przez filectime. Warunek musisz sam skonstruować; wtedy nie będzie śmieci.
dangesamurai
owszem jest to pewne rozwiazanie dzieki erix.
jednak interesuje mnie rozwiazanie od strony samego skryptu... sam nie wiem.. zmiana kolejnosci wykonywania??
czy da sie zmusic przegladarke do wykonania najpierw tego fragmentu php ktory wyswietla losowy obrazek i po wyswietleniu go usunac?
erix
Ale skoro to jest np. jakiś token, to czemu nie możesz go wyświetlać bezpośrednio przez skrypt...?

Jeśli chodzi o drugie pytanie, to pozostaje najwyżej jakiś skrypt podpinany pod zdarzenie onload dla obiektu obrazka.

Ostatecznie, osobny skrypt, który byłby "routerem" dla obrazków, działający przy pomocy rewrite:
[APACHE] pobierz, plaintext
  1. rewriterule (.+)\.jpg$ proxy.php?img=$1 [L]
[APACHE] pobierz, plaintext


A sam skrypt podobnej postaci (dorób sobie sprawdzanie, itp)

  1. // ...
  2. header(...);
  3.  
  4. readfile($file);
  5. unlink($file);
dangesamurai
erix ja wlasnie wyswietlam go bezposrednio przez skrypt
wyglada to mniej wiecej tak:

wszystko w php:

pobieram dane
generuje parametry wykresu (funkcje matematyczne)
tworze przez ekotabele i wyswietlam obrazek
--- to dziala



pobieram dane
generuje parametry wykresu (funkcje matematyczne)
tworze przez echo tabele i wyswietlam obrazek
usuwanie obrazka
--- to nie dziala nie wyswietla obrazka
erix
Ale jak usuwasz ten obrazek?
dangesamurai
  1. $losowanazwa=rand();
  2. $nazwaobraz="{$losowanazwa}.jpg";
  3. imagejpeg($gd,$nazwaobraz);
  4. echo "<img src='{$nazwaobraz}'>";
  5. kod kod....
  6. [b]unlink($nazwaobraz);[/b]

i nie wyswietla a gdy usune unlink to wyswietla
jak sie domyslam chodzi o kolejnoosc wykonywania skryptu napierw robi caly php
pozniej realizuje html generowany przez php czyli moje <img src=... tylko wtedy juz nie ma obrazka bo na koncu go usunąłem

mam pomysl zeby zakonczyc php bez wyswietlania a w htmlu urzyc javascript aby go wyswietlic. nastepnie znowu php kasowanie
nie wiem tylko czy to ma sens

prosze o inne sugestie. chce zeby obrazek sie wyswietlil i pozniej w tym samym skrypcie zostal usuniety
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.