Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pliki tymczasowe, jak je usunac gdy nie beda juz potrzebne
yavaho
post 17.03.2005, 00:00:01
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Uzytkownik robi jakies operacje na plikach graficznych. Najpierw ustala pewne parametry (rozdzielczosc, kompresje, dodaje takst na obraz itp) Wciska OK i otrzymuje wynik w postaci obrazka na monitorze. W tym samym momencie obrazek zostaje zapisany na serwerze jako plik tymczasowy - i gdy uzytkownik zdecyduje sie na ta wersje obrazka to zapisze go do swojej galerii.
Ale zanim zdecyduje sie na zapis wlasciwego obrazka to z pewnoscia bedzie generowal kilka jego poprzednich wersji.
Kazda wygenerowana wersja obrazka ma inna nazwe pliku z tego wzgledu aby uniknac cachowania obrazka w przegladarce.
I teraz pytanie: jak usunac obrazek gdy uzytkownik w pewnej chwili zrezygnuje i opusci strone? Bo jezeli zakonczy wszystko normalnie i zapisze swoj obrazek to bez problemu mozna usunac ten "temp".


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
dr_bonzo
post 17.03.2005, 00:04:33
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Trzeba by zapamietac nazwy wszystkich tych plikow, lub tworzyc je w jednym katalogu (zapamietac jego nazwe) i pozniej go usunac z cala zawartoscia. Albo przechowywac obrazki w bazie danych - dodajesz im pole temp (wskazujace czy jest do usuniecia) i id usera (sesji -- zeby rozpoznac czyje to obrazki) i usuwasz wszstkie rokordy z temp = 1 i pasujace do danego usera.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Darti
post 17.03.2005, 00:11:18
Post #3





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Ja miałem podobny problem. Miałem skrypcik generujący wykresy dynamicznie.
Zastosowałem katalog TEMP + kasowanie plików "starszych niż" (np 3 dni). Temp sprawdzany był co pierwszą wizytę każdego dnia. Działa smile.gif

ps - starszych niż - czyli sprawdzana data utworzenia pliku i warunek if w pętli

Ten post edytował Darti 17.03.2005, 00:12:27


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
yavaho
post 17.03.2005, 00:14:15
Post #4





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Ale kiedy je usunac?
Jezeli user w pewnej chwili przerwie wykonywanie operacji ktore powinien dokonczyc i zostawi po sobie smieci, ktore normalnie zostaly by usuniete jezeli by doszedl do konca operacji ktore rozpoczal.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
dr_bonzo
post 17.03.2005, 00:18:21
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


No to wtedy (kiedy przechowujesz obrazki w bazie + dodajesz pole data_utworzenia_obrazka) przy wejsciu dowolnego usera na strone usuwasz wszystkie STARE obrazki (tzn starsze niz np. 30 minut) -- dzieki temu usunesz 'pozostawione' obrazki przez niezakonczone akcje.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
yavaho
post 17.03.2005, 00:23:23
Post #6





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Juz mialem isc spac ale chyba dzieki Wam cos wymyslilem winksmiley.jpg
Nazwy plikow tymczasowych beda mialy czas pobierany z time();
I kazdy nastepny user bedzie sprzatal po poprzednim - czyli zrobie skrypt ktory uruchomi kazdy user i bedzie usuwal pliki starsze niz np 1 dzien.
To powinno chyba dzialac?


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
Darti
post 17.03.2005, 00:25:33
Post #7





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


znaczy niekoniecznie data byla w bazie - wogole po co mieszac w to baze? skoro czyscimy cyklicznie tempa, to tam jest gora kilka(nascie) obrazkow - uzylem readdir() albo cos takiego zeby sprawdzic datę utworzenia pliku.

ps - takie cos zrobilem (możliwe że częściowo przy pomocy manuala - nie pamiętam)
  1. <?php
  2.  
  3. define('_TEMP_DIR','./temp');
  4. function czysc_temp(){
  5.     
  6.     list($a,$czas) = explode(&#092;" \",microtime());
  7.     if ($handle = opendir(_TEMP_DIR)) {        
  8.         while (false !== ($file = readdir($handle))) {            
  9.             if ($file != &#092;".\" && $file != \"..\" && file_exists(_TEMP_DIR .$file)) {                
  10.                 if (filectime(_TEMP_DIR . $file) + 86400 < $czas){
  11.                     unlink(_TEMP_DIR . $file);                    
  12.                 }
  13.             }
  14.         }
  15.         closedir($handle);
  16.     }
  17.     
  18. }
  19.  
  20. ?>


Ten post edytował Darti 17.03.2005, 00:31:16


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
dr_bonzo
post 17.03.2005, 00:45:19
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


@Darti: twoje rozwiaznie jest ok i chyba najprostsze (tzn kodu nie sprawdzalem, chodzi mi o pomysl)

DLaczego baza? Chcialem w prosty sposob zapamietac czas utworzenia obrazkow i usera do nich przyporzadkowanego -- dla latwego usuwania.

Ide spac.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 12:07