eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwProblem z nagłówkami HTTP 1.1Problem z nagłówkami HTTP 1.1
  • Path: news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
    From: "Marek" <m...@s...interia.pl>
    Newsgroups: pl.comp.www
    Subject: Problem z nagłówkami HTTP 1.1
    Date: Wed, 30 Sep 2009 02:35:01 +0200
    Organization: http://news.icm.edu.pl/
    Lines: 30
    Message-ID: <h9u93k$g1o$1@achot.icm.edu.pl>
    NNTP-Posting-Host: chello089077232029.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Trace: achot.icm.edu.pl 1254270900 16440 89.77.232.29 (30 Sep 2009 00:35:00 GMT)
    X-Complaints-To: a...@i...edu.pl
    NNTP-Posting-Date: Wed, 30 Sep 2009 00:35:00 +0000 (UTC)
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    X-Priority: 3
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
    X-MSMail-Priority: Normal
    Xref: news-archive.icm.edu.pl pl.comp.www:393697
    [ ukryj nagłówki ]

    Witam,

    Mam problem z określeniem wartości przekazywanej w nagłówku Content-Length.
    Otóż skrypt PHP wysyła zawartość pliku w następujący sposób:

    header('HTTP/1.1 200 OK');
    header("Etag: \"".$fileInfo["Etag"]."\"");
    header("Content-Type: ".$fileInfo["file_mime"]);
    header("Last-Modified: ".$fileInfo["Date"]." GMT");
    header("Content-Length: ".(strlen($fileInfo["file_data"])+20));
    print($fileInfo["file_data"]);

    Plik SWF odebrany przez przeglądarkę jest o 20 bajtów krótszy niż zwraca
    strlen($fileInfo["file_data"]). Gdy jest nim SWF, to dzieją się wtedy cuda z
    tą animacją. Po przekazaniu do nagłówka Content-Length długości pliku
    powiększonej o 20, wszystko działa poprawnie, plik przechodzi w całości. W
    przypadku gdy do czynienia mamy ze zwykłymi obrazkami, to nie muszę dodawać
    tych 20 bajtów, a raczej nie mogę nawet, gdyż wtedy z nimi zaczynają być
    problemy. Przeglądarka wtedy czeka na brakujące 20 bajtów, które nigdy nie
    nadejdą.

    Zmodyfikowałem więc procedurę liczenia długości w następujący sposób:

    $length=strlen($fileInfo["file_data"]));
    if ($fileInfo["file_mime"]=="application/x-shockwave-fl
    ash") $length+=20;
    header("Content-Length: ".$length);


    Czy ktoś z Was wie skąd to 20 bajtów?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: