Dodawanie załączników
Informacje praktyczne o możliwościach i ograniczeniach wynikających z funkcji wysyłania oraz automatycznego przetwarzania załączników w dokumentach.
Większość z typów dokumentów umożliwia w sposób bezpośredni załączenie dowolnego rodzaju załącznika. Mogą to być zarówno zdjęcia jak i dokumenty pdf, pakietu MS Office, OpenOffice czy również archiwa zip, rar lub aplikacje.
Większość z tych dokumentów może zostać bezpośrednio z poziomu strony WWW wysłana na serwer i poprzez zawarte w aplikacji vCMS odpowiednie mechanizmy przypisana do odpowiedniej grupy, zgodnej z typem MIME pliku.
Dodatkowo w przypadku wykrycia, że załączanym plikiem jest plik obrazu, wówczas aplikacja podejmuje dodatkowe czynności związane z odpowiednim przygotowaniem plików graficznych do pożniejszego wyświetlenia na stronie WWW.
Problemy z wysyłaniem plików na serwer
Najczęstszym problemem podczas wysyłania plików na serwer jest ich rozmiar, im większy plik tym trudniejsze i bardziej czasochłonne jest wykonanie całej operacji, a to z kolei przyczynia się do pojawiania różnego rodzaju błędów.
Sam protokół HTTP za pomocą którego wysyłany jest plik na serwer, jest dość zawodny i musi pokonać wiele przeszkód. Pierwszą z nich jest wymagany odpowiedni czas reakcji serwera na wykonanie zapytania, a ten nie nastąpi, gdy całe zapytanie, a w nim nasz plik nie znajdzie się w całości na serwerze. W takim przypadku istnieje duże prawdopodobieństwo wygenerowania przez przeglądarkę komunikatu o braku uzyskania odpowiedzi od serwera na wysłane zapytanie (tak zwany timeout), podobne problemy mogą występować w przypadku korzystania z serwerów proxy dostawcy internetu.
Przy okazji wyjaśnień związanych z używaniem protokołu HTTP w celu wysyłania plików należy wspomnieć również, że z uwagi na to iż sam protokół HTTP nie ma z założenia funkcjonować w charakterze transportera plików rozmiar pliku może zostać drastycznie zwiększony, a samo przetransportowanie pliku na serwer tą metodą jest znacznie wolniejsze od zastosowania w tym celu protokołu FTP, który w takich zastosowaniach sprawdza się idealnie.
Kolejnym problemem jest odpowiednia konfiguracja serwera wirtualnego, który zwykle narzuca pewne restrykcje na rozmiar przesyłanego do serwera zapytania, im większy plik tym rozmiar zapytania będzie większy, a to z kolei wiąże się możliwością dotarcia lub nawet przekroczenia wielkości tego parametru i jego odrzucenia przez serwer.
Następna pułapka to sama konfiguracja środowiska PHP, która również pozwala na określenie maksymalnej wielkości wysyłanego pliku i domyślnie ustawiona jest na 2MB ( 2048 bajtów ), co przy większych plikach będzie powodowało odrzucenie pliku.
Wszystkie powyższe problemy nie są spowodowane błędami aplikacji, a ich przyczyna leży po stornie sieci i zachowań (bądż co bądź odpowiednich) oprogramowania funkcjonującego na serwerze wirtualnym.
Detekcja typu i przetwarzanie plików
Kiedy wysyłany załącznik znajdzie się już na serwerze następuje jego rozpoznanie oraz dołączenie informacji o istnieniu takiego pliku do magazynu aplikacji oraz zapisanie relacji do odpowiedniego, istniejącego dokumentu.
W zależności od typu pliku zostaje on poddany dodatkowej obróbce ( pliki graficzne ) lub zapisany i pozostawiony bez zmian w folderze określonym poprzez parametry konfiguracyjne aplikacji.
Aplikacja vCMS automatycznie wykrywa typ MIME pliku podczas wysyłania pliku na serwer i przechowuje go w bazie danych do późniejszego wykorzystania.
W przypadku przeglądarki Netscape i wysyłaniu pliku przez formularz o nieznanym typie MIME może dojść do nieprawidłowego wykonywania operacji na takich plikach. W Internet Explorer przyjmowany jest typ MIME "application/octet-stream".
W przypadku plików graficznych, aplikacja próbuje odczytuje parametry ustawień dla plików graficznych i próbuje utworzyć kopie obrazków w odpowiednich, zdefiniowanych przez użytkownika rozmiarach.
W przypadku plików graficznych o dużych rozdzielczościach należy liczyć się z koniecznością zarezerwowania dużej ilości pamięci potrzebnej do przetworzenia zdjęcia. Istnieje w tym miejscu prawdopodobieństwo, że rozmiar wymaganej do przetworzenia zdjęcia pamięci przekroczy dopuszczalny rozmiar pamięci jaką może wykorzystać aplikacja co spowoduje wygenerowanie błędu przez parser PHP na serwerze.
Aby ustrzec się przed tego typu problemami należy sprawdzić rozmiar zdjęcia przed jego wysłaniem. Dla przykładu serwery oferowane przez firmę NetArt pozwalają na poprawną obróbkę zdjęć, których wymiary nie przekraczają rozdzielczości 1000x750px.
Usuwanie plików
W przypadku chęci usunięcia załącznika z dokumentu należy posłużyć się ikoną kosza umieszczoną po lewej stronie dokumentu. Usunięcie załącznika powoduje automatyczne usunięcie jego wykonanych automatycznie kopii (w przypadku plików graficznych).
Jeśli już po dołączeniu do dokumentów załączników w postaci plików graficznych zostaną zmienione parametry rozmiarów, to wówczas utworzone kopie obrazów nie zostaną usunięte z serwera, mogą również nie być poprawnie wyświetlane.