50756 skanuj0134 (14)

50756 skanuj0134 (14)



Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 145

Klauzula default instrukcji switch zabezpiecza nas przed sytuacją, kiedy w polu error znalazłby się nieznany kod błędu (np. wprowadzony w kolejnych wersjach PHP). Dzięki niej również wtedy zostanie wyświetlona odpowiednia informacja.

Odbieranie plików (download)

Równie ważne jak wysyłanie plików do serwera jest ich przekazywanie przez serwer do przeglądarki. W taką funkcjonalność wyposażonych jest bardzo wiele witryn internetowych, w szczególności udostępniających użytkownikom pliki do pobrania. Realizacja tego typu funkcji wymaga znajomości przynajmniej podstawowych operacji na systemie plików. Zatem osoby nieobeznane z tą tematyką powinny najpierw zapoznać się z informacjami zawartymi w rozdziale 7.

Wysłanie pojedynczego pliku

Wysłanie pliku z serwera do przeglądarki nie wymaga wykonania wielu czynności. Najpierw należy wysłać odpowiednio przygotowane nagłówki protokołu HTTP zawierające informacje o pliku, a następnie samą zawartość pliku. Należy skorzystać z nagłówków:

♦    Content-Type — określającego typ MIME danych,

♦    Content-Length — określającego ilość danych (długość pliku),

♦    Content-Di spositlon — określającego rodzaj (przeznaczenie) danych.

Nagłówki wysyła się do serwera za pomocą funkcji header. Nagłówek Content-Type powinien zawierać typ mi me, np. image/gif, my będziemy korzystać z uniwersalnego typu określającego dane binarne: application/octet-stream. Nagłówek Content--Disposition powinien zawierać wartości informujące przeglądarkę, że otrzymuje dane, które mają być traktowane jako załącznik, a niejako treść strony. Ogólnie fragment skryptu wysyłającego nagłówki HTTP będzie miał postać:

header("Content-Type: application/octet-stream''): headert"Content-Length: $size:"):

headerCContent-Disposition: attachment; filename-Sname"):

Zmienna size powinna przy tym wskazywać rozmiar (liczbę bajtów) pliku, a name nazwę pliku, jaka pojawi się w oknie dialogowym, które przeglądarka wyświetli na ekranie z pytaniem, czy użytkownik chce zapisać plik na dysku (rysunek 5.6). Należy pamiętać, aby wykorzystana w tym miejscu zmienna name zawierała samą nazwę pliku, bez ścieżki dostępu. Oczywiście nazwy zmiennych poszczególnych skryptach mogą się zmieniać, zasada pozostaje jednak taka sama.

Po wysłaniu nagłówków trzeba wysłać zawartość samego pliku. Aby to zrobić, należy użyć kilku dodatkowych funkcji. Plik musi zostać otwarty za pomocą funkcji fopen oraz odczytany przy użyciu funkcji fread. Dodatkowo jego wielkość zostanie pobrana przy wykorzystaniu funkcji filesize. Pełny kod skryptu jest widoczny na listingu 5.9. Został


Wyszukiwarka

Podobne podstrony:
skanuj0140 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 151 Katalog jest otwierany za pomo
skanuj0130 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 141 skrypt, odczytujący wartos ć p
20417 skanuj0132 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 143 Plik wysiany do serwera
skanuj0138 (15) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 149 fclose(Sfd): header("Cont
skanuj0144 (13) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 155 header("Content-Type:
10110 skanuj0136 (15) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 147Wysyłanie pliku wybierane
10466 skanuj0142 (12) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 153 Warto zauważyć, że przy
82595 skanuj0128 (17) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 139 Rysunek 5.3. Formularz

więcej podobnych podstron