Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax upload i problem ze śmietnikiem...
Forum PHP.pl > Forum > PHP
Daimos
Witam

Mam formularz, gdzie robię upload plików ajaxem, więc pliki przed wysłaniem formularza, już fizycznie lecą na serwer, a przechowywane są w folderze tymczasowym (nazwijmy go temp). Dopiero po przesłaniu całego formularza, lądują w oczekiwanym miejscu i są usuwane z temp. Teraz zagadka...
Wiadomo, że ktoś może formularz zacząć wypełniać, zrobi upload, ale anuluje przesłanie całości. W tym momencie, zostaje śmietnik w temp. Coś trzeba z tym robić smile.gif
Ja widzę takie rozwiązania:
- sprawdzać, czy ktoś zamyka okno przeglądarki z poziomu JS i wysyłać ajaxem żądanie czyszczenia tempa (bardzo kiepskie rozwiązanie, ewentualnie jako dodatek)
- czyścić cronem tymczasowy folder, usuwając stare* pliki
- czyścić przed każdym uruchomieniem formularza stare* pliki

* stare pliki, mam namyśli takie, które np. są dłużej niż 24h, wiadomo - aby nie usunąć czegoś w trakcie wypełniania formularza. Jednak mimo takiego zabiegu, zawsze będą tam zbędne śmieci, chociażby z tych wspomnianych 24h

Więc teraz pytanie do Was, czy widzicie inne możliwości? Może jakieś ciekawe pomysły, a może już gdzieś stosujecie jakieś ciekawe rozwiązania takiego problemu?
Pawel_W
zdecydowanie opcja druga smile.gif
Daimos
hehe nie pytałem o to która smile.gif mimo wszystko dzięki wink.gif Tylko opcja druga, z cronem, ma swoją wadę - jeśli przyjdzie zainstalować taki skrypt na serwerze bez crona (zdarzają się niestety sad.gif ) to wtedy temp rośnie

Ale nie o tym, interesuje mnie, czy może widzicie jakieś inne opcje, oprócz tych, które wymieniłem?
Pawel_W
rzeczywiście, jakoś mi to umknęło - jeżeli robisz coś na poważnie to raczej wykupujesz taki serwer, który ma crona, więc nie widzę tutaj problemu smile.gif
Daimos
Wiesz, jak robię coś dla siebie, to nie martwię się o takie rzeczy. Jeśli jednak mechanizm ma być później masowo wdrażany w wielu serwisach, to już muszę brać pod uwagę wiele możliwości, no ale EOT smile.gif nie o tym dyskusja
Hpsi
Hm pewien pomysł mam ale nie wiem czy jest on adekwatny.
Jeśli formularz jest np do zalogowanych użytkowników, to byś mógł w TMP dawać przedrostek np z id'kiem użytkownika, i w czasie uruchamiania np index'u , sprawdzać czy istnieją pliki z prefixem id uzytkownika którzy nie są zalogowani i w tym momencie pozbywać się plików?
Nie jest to do końca przemyślana koncepcja można by nad tym pogłówkować troszkę i lepiej rozwiązać ale taki pomysł mi wpadł do głowy.
Daimos
No jest to jakiś pomysł, ale w sumie podobny jest to metody, gdzie kasowałbym stare pliki, tylko tutaj faktycznie, mogę kasować pliki, które są świeższe. Ale...
Kiedy dużo osób będzie zalogowanych, może się to wiązać z większymi operacjami (no bez przesady, ale wiadomo smile.gif )
W końcu muszę sprawdzić wszystkie pliki, które się tam znajdują
markonix
CRON + ręczne wywołanie czyszczenia.
Cron będzie raczej wszędzie, a gdy go nie ma (serio rzadko się to zdarza), albo ktoś go nie będzie umiał włączyć (to już prędzej) to po prostu co niedziele sobie będzie włączał zakładkę "Optymalizacja". Możesz dodać alert w oknie powitalnym, że "Nie masz ustawionego CRONa, aby zmniejszyć zajętość dysku dokonaj optymalizacji".
drPayton
Imho @markonix ma rację, nawet na darmowych hostingach cron jest juz standardem, na płatnych wręcz nie może go nie być.
Takie podejście - zostawienie (w sytuacji awaryjnej) optymalizacji (tu: czyszczenie tempa) administratorowi systemu jest rozwiązaniem akceptowalnym.
Daimos
No to jest dobry pomysł, aby połączyć funkcjonalności tzn Cron + czyszczenie przez admina. W przypadku braku crona, sprawa też jest tak załatwiona
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.