Dzień 5. Upload plików oraz wersje robocze
upload, mohebo
Postanowiłem dzisiaj przysiąść do dołączania plików do artykułów. Z pozoru prosta opcja: jedna tabelka sql, jedno dodatkowe okno z jednym formularzem. Jak się jednak dowiedziałem jest to trochę bardziej skomplikowane. Każdy plik jest przypisywany do jakiegoś artykułu. Gdy edytujemy cokolwiek nie ma problemu, identyfikator artykułu jest pod ręką. Gorzej gdy jesteśmy w trakcie tworzenia nowego. Z bazą danych nie byłoby problemu - można użyć transakcji, gorzej z uploadowanymi plikami, musiałbym jakoś inteligentnie nimi zarządzać i usuwać pliki tymczasowe. W końcu doszedłem do wniosku, że najbardziej eleganckim rozwiązaniem będzie zapisywanie artykułu w tle jako szkic. Problem w tym, że muszę teraz przebudować panel administracyjny tak aby dodawanie i edycja artykułu były w jednym miejscu, obsługiwane przez ten sam szablon. Gdy skończę z tym, upload plików nie będzie już wielkim problemem ;). Zastanawiałem się także długo nad formą uploadera. Mogę użyć jeden z wielu klas korzystających z technologii ajax, które niestety w większości przypadków używają pływającej ramki. Rozwiązanie to nie podoba mi się ze względu na wierność standardom ;). Znalazłem jednak coś ciekawego swfupload. Jest to bardzo ciekawa biblioteka, która do zarządzania uploadem nie używa ramki a specjalnego fliku swf. Pytanie tylko czy opieranie tak ważnej opcji bo flash jest dobrym rozwiązaniem? Sprawdziłem skrypt pod Konquerorem - nie działa, więc nie musiałem się zastanawiać długo. Wykorzystam zwykłe okienko z formularzem, które będzie wspierane ajaxem. Powinno być wygodnie, elegancko i zgodnie ze standardami ;).