• Typy MIME i IBrowse

20.02.2005 16:30, autor artykułu: Sebastian Rosa
odsłon: 7112, powiększ obrazki, wersja do wydruku,

Podczas ostatniego "sieciowania" doszedłem do przykrego dla mnie wniosku, że mój IBrowse nie potrafi poprawnie rozpoznawać plików typu LZX, PDF, czy innych DOC czy XLS, które często można spotkać na różnych stronach w sieci. Oczywiście nie jest to jakiś straszny problem, bo na odnośnik można kliknąć prawym przyciskiem myszy i wybrać opcję zapisywania na dysk. Jak jednak wiadomo, czasami człowiek się zapomni. A po kliknięciu może być mało ciekawie, gdyż w najlepszym przypadku ekran będzie przypominał zlot pomocników mrówki Z lub innego robactwa, pozostając całkowicie nieczytelnym, a w najgorszym może doprowadzić do zawieszenia programu i nawet całego komputera. Postanowiłem coś z tym zrobić, a konkretnie poprawnie skonfigurować typy MIME.

MIME to skrót od Multipurpose Internet Mail Extensions. Na pewno wielokrotnie spotkaliście się z tym skrótem, na przykład w YAM-ie. Nie bez znaczenia właśnie tam, gdyż MIME to standard, który powstał w celu zdefiniowania różnych typów plików zawartych w elektronicznej wiadomości, czyli e-mailu. Typy MIME znalazły swoje zastosowanie także w przypadku przeglądarek internetowych. Gdy klikamy na odnośnik do jakiegokolwiek pliku, przeglądarka wysyła żądanie do serwera po ten plik. Następnie serwer odpowiada wysyłając najpierw nagłówek z informacją o typie pliku, który jest właśnie zdefiniowany w standardzie MIME. W ten oto sposób przeglądarka wie, co z takim plikiem zrobić. Oczywiście pod warunkiem, że typ MIME został dla przeglądarki skonfigurowany, czyli najzwyczajniej w świecie - przeglądarka została nauczona jak z nim postępować. Typ MIME składa się z dwóch elementów oddzielonych ukośnikiem:

  • typu pliku (na przykład obraz (image), dźwięk (audio) lub tekst (text)),
  • podtypu pliku, który definiuje jego konkretny format (na przykład jpeg, gif, html).

W efekcie każdy, na przykład obrazek w formacie JPEG, posiada określony typ MIME jako "image/jpeg" lub "image/pjpeg" (w przypadku pliku z kompresją progresywną). Tak samo pliki HTML także posiadają własne określenie typu jako "text/html". Fakt, że przeglądarka "została nauczona" typów plików nie oznacza, że będzie wiedziała co z nimi zrobić. Większość przeglądarek internetowych pozwala sprecyzować jej zachowanie gdy otrzymają plik o określonym typie MIME. Przyjęło się, że powinny być dostępne co najmniej trzy możliwości: otwarcie pliku w przeglądarce, otwarcie pliku w zewnętrznym programie, zapis pliku na dysk. Teraz już tylko pozostaje odpowiednio całość skonfigurować.

Skoro już wiemy czym są typy MIME, spróbujmy zastosować je w naszej przeglądarce. IBrowse, Voyager i AWeb posiadają ich obsługę, lecz z racji iż używam tylko przeglądarki IBrowse, na nim będę opierać swoje przykłady. Prawdopodobnie w przypadku pozostałych dwóch programów sytuacja wygląda identycznie.

MIME Opcje związane z ustawieniami typów MIME znajdziemy w ustawieniach programu w zakładce General. Ostatnią z sekcji jest właśnie MIME Types. Znajdziemy tam swego rodzaju tabelkę składającą się z czterech kolumn. W pierwszej z nich jest typ MIME, który opisałem w powyższych akapitach. Druga kolumna to rozszerzenie pliku. W trzeciej znajduje się rodzaj czynności jaką ma wykonać przeglądarka. Możemy ją wybrać przy definiowaniu typu MIME. Do wyboru jest sześć możliwości: wykorzystanie wewnętrznie wbudowanej przeglądarki, zapis na dysk, otworzenie pliku w zewnętrznym programie (po uprzednim zapisaniu go do domyślnego katalogu), zapytanie użytkownika co program ma zrobić z plikiem, otworzenie pliku w zewnętrznym programie z tą różnicą, że IBrowse będzie starał się na bieżąco przesyłać dane (streaming), transfer adresu URL do zewnętrznego programu (na przykład do MLDonkey). Dwie ostatnie możliwości mają zastosowanie wyłącznie w programach, które posiadają ich obsługę. Czwarta kolumna zawiera nazwę programu i argumenty, które mają posłużyć do otwarcia rozpoznanego pliku.

Zajmijmy się w takim razie edycją typów MIME. Służy do tego zbiór gadżetów i pól pod wspomnianą tabelką. Po kliknięciu na wybraną pozycję, dane które w sobie zawiera, wyświetlają się pod tabelką. Możemy je dowolnie zmieniać według naszych potrzeb.

MIME Czas na dodanie własnych typów. Wystarczy kliknąć na przycisk "Add" (Dodaj). Wówczas do tej pory zapewne uzupełnione pola stają się puste i możemy działać. Przykładowo skonfigurujmy sobie typ MIME dla plików PDF. Wiadomym jest, że IBrowse nie potrafi wyświetlić pliku PDF w oknie przeglądarki, lecz możemy go nauczyć, aby plik PDF próbował otworzyć przy pomocy innego programu np. APDF. Pierwszą czynnością jaką musimy wykonać jest poznanie typu MIME charakterystycznego dla danego pliku. Można oczywiście zgadywać, lecz polecam poszukać w sieci stosownych informacji np. tutaj. Typ MIME dla plików PDF to "application/pdf". Wprowadzamy powyższe słowa do pierwszej linii naszego "edytora typów MIME". Następnie, w kolejnej linijce, możemy podać rozszerzenie. Jak już wcześniej wspomniałem, ono także może służyć do rozpoznawania plików, lecz dla IBrowse priorytetem prawie zawsze jest typ MIME. Nie stawiamy tutaj żadnych kropek tylko same rozszerzenia plików. Jeżeli, tak jak np. przy plikach JPEG rozszerzeń może być kilka (jpg, jpeg), rozdzielamy je spacją (nie przecinkiem).

Skoro już IBrowse będzie wiedział z czym ma do czynienia, powiedzmy mu co ma z tym zrobić. Przy pomocy sześciu przycisków decydujemy się na jedną z opcji. W naszym przypadku, gdy chcemy, aby pliki PDF otwierane były przez program APDF wybieramy "External viewer" (zewnętrzna przeglądarka). Następnie w kolejnej linii, przy pomocy requestera wybieramy ścieżkę dostępu do programu, który ma otwierać pliki (w naszym przypadku będzie to APDF). Samo uruchomienie programu jednak nie wystarczy. Należy jeszcze przekazać mu ścieżkę dostępu i nazwę pliku, który ma zostać otwarty. Tym zajmuje się już IBrowse, ale musimy mu powiedzieć co ma przekazać. Do tego celu służą argumenty, które możemy automatycznie wybrać przy pomocy przycisku z prawej strony. Standardowo powinniśmy wybierać "%f" (ścieżka i nazwa pliku pobranego do domyślnego katalogu). Możemy także wybrać takie parametry jak "%p" (nazwa ekranu publicznego na jakim pracuje IBrowse), "%r" (adres URL pliku), "%n" (nazwa pliku na serwerze, bez ścieżki dostępu). Ostatnie dwa dotyczy wyłącznie aplikacji, które potrafią zaakceptować tego typu informacje. Oczywiście niektóre programy, które tutaj będziemy podpinać mogą wymagać jakichś dodatkowych argumentów. Wtedy należy oprócz wyżej wspomnianego (wspomnianych) wprowadzić inne (np. argument do otwarcia programu na osobnym ekranie, czy też jakieś parametry związane z dekodowaniem np. pliku mp3). W ten oto prosty sposób nauczyliśmy IBrowse otwierać pliki PDF przy pomocy programu APDF.

Spostrzegawczy z całą pewnością zauważyli, że jest jeszcze jedna opcja, której nie omówiliśmy, która znajduje się na samym dole. Ma ona znaczenie przy czynnościach, które oznaczymy jako zapis na dysk. Domyślnie program będzie starał się zapisywać pliki do katalogu ustawionego w innej części ustawień IBrowse (General/Directories). Możemy jednak to zmienić i określić np. aby konkretne typy plików, rozpoznane przez MIME, zapisywane były do osobnych katalogów. Należy wówczas właśnie w tym polu sprecyzować ten katalog i cycle gadżet znajdujący się po prawej stronie przemianować na "Use". Istnieje jeszcze możliwość wybrania opcji "Use (no req)". Służy ona do tego, aby IBrowse nie wyświetlał requestera, w którym pyta się o nazwę pliku, lecz od razu rozpoczął zapisywanie do ustawionego katalogu. Warto jednak zauważyć, że jeżeli nazwa pliku jest dłuższa niż 31 znaków (ograniczenie FFS) wówczas requester zostanie wyświetlony.

MIME Czasami jednak może się zdarzyć, że nawet jeżeli mamy prawidłowo skonfigurowany typ MIME i opisaną czynność z nim związaną IBrowse nadal wykrzacza kilobajty robaków na ekranie lub pyta się co ma z tym zrobić (chociaż jeżeli się pyta to już pół biedy). Tak może się przydarzyć z plikami LZX, które nie wiedzieć czemu nie są na sieci zbyt lubiane i nie zawsze przeglądarka zachowuje się tak, jak byśmy tego chcieli. Nie jest to oczywiście wina przeglądarki, lecz serwera, na którym umieszczono wspomniany plik. W IBrowse jest na to rada. Należy utworzyć typ MIME dla LZX zgodnie z podanym schematem:

  • typ MIME - "application/x-lzx"
  • rozszerzenie - "!lzx"
  • czynność - zapis na dysk

MIME Wszystko jest chyba w miarę zrozumiałe. Pojawia się jednak drobna różnica. Przy rozszerzeniu pojawił się wykrzyknik. Oznacza on, że IBrowse ma priorytetowo traktować rozszerzenie. Do tej pory rozszerzenie było jedynie uzupełnieniem i najważniejszy był typ MIME. Przy pomocy wykrzyknika możemy to zmienić. Warto zauważyć, że wykrzyknik może występować tylko przy pierwszym rozszerzeniu na liście. Każde kolejne wpisane po spacji nie może zawierać wykrzyknika. To znaczy, może, lecz IBrowse będzie je ignorował. Oczywiście, podobnie jak poprzednio, możemy skonfigurować osobny katalog dla tego typu MIME.

Typy MIME można wykorzystać praktycznie do wszystkiego. Możemy pozwolić sobie na otwieranie plików MP3 przy pomocy AmigaAMP-a czy AmiNetRadio, filmy MPEG czy MOV przy pomocy stosownych odtwarzaczy, a także coraz bardziej popularne pliki shockwave flash przy pomocy SWFPlayera (konfiguracja ustawień widoczna jest na czwartym obrazku). Udanego MIME-owania!

Podziękowania dla Roberta Williamsa z Total Amiga za pomoc w stworzeniu artykułu.

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem