Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wyświetlanie zdjęcia, headery
propage
post 3.09.2009, 18:52:45
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


Na niektórych komputerach/przeglądarkach zdjęcia z mojej storny nie odtwierają się, gdy nie wyświtlam ich bezpośrednio, a za pomocą skryptu

  1. <?
  2. $file=$_GET['url'];
  3.  
  4. $info = GetImageSize($file);
  5. $mime = $info['mime'];
  6. $data = file_get_contents($file);
  7.  
  8. header("Expires: Mon, 26 Jul 2020 05:00:00 GMT");
  9. header("Content-type: $mime");
  10. header('Content-Length: ' . strlen($data));
  11. echo $data;
  12. exit();
  13.  


Skrypt ma na celu dodanie zdjęciom hedera, który zapobiegnie ścienianiu zdjęć za przy każdym odświeżeniu strony.

Skrypt działa dobrze u mnie jednak, niektórzy twierdzą, że na ich komputerach zdjęcia się nie otwierają.

Zaobserwowałem, że również u mnie, pod Firefoksem, po odtworzeniu w przeglądarce konkrentgo wejści i co przy którymś odświrzeniu wyskakuje zamiast zdjęcia informacja, że zdjęcie zawiera błedy, jednak po chwili napis znika i zdjęcie zaczyna się ładować.
Go to the top of the page
+Quote Post
thek
post 3.09.2009, 20:45:16
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Pamiętaj, że czasem serwer może mieć malutką zadyszkę. Pobieranie przy pomocy file_get_contents może w przypadku większych zdjęć spowodować długie oczekiwanie. Ja dlatego między innymi wolę zamiast zwykłych jpg wrzucać progressive jpg. Zdjęcie może nie ładuje się szybciej, ale użytkownik chociaż widzi, że coś się ładuje winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
propage
post 4.09.2009, 07:20:40
Post #3





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


da sie cos na to poradzic? nie mysle zeby byla to wina file_get_contents, poniewaz skrypt do tworzenia miniaturek, ktory napisalem rowniez dziala w opaciu o file_get_contents i tam nie pojawiaja sie takie problemy
Go to the top of the page
+Quote Post
thek
post 4.09.2009, 08:38:19
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Tyle, że pobranie miniaturki przy użyciu file_get_contents z serwera i wyświetlenie jej jest niezbyt czasochłonne. Miniaturka ma bowiem zazwyczaj kilka kB, zaś pełny obrazek może bez problemu przekroczyć 1MB i próba ściągnięcia może się zakończyć przez serwer odpowiadający zerwaniem połączenia ze względu na zbyt długi okres oczekiwania na skrypt. Co innego gdy są kopiowane na tym samym serwerze (np. z temp do skryptu mającego go obrobić i stworzyć miniaturę) a co innego przesyłka między serwerem i klientem. By to próbować obejść wrzuć set_time_limit(0) tuż przed wysyłka obrazka.
Zresztą zobacz do komentarzy przy funkcji fpassthru


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
franki01
post 4.09.2009, 21:24:49
Post #5





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Też się z tym spotkałem. Nie obyło się bez mod_rewrite. Przeglądarka powinna widzieć plik o rozszerzeniu .jpg, .gif albo .png w zależności od obrazka. Dalsza część za '?' w adresie może być dowolna. Zrób sobie RewriteRule z image.jpeg i innych rozszerzeń, a wszystko powinno działać. Głupie, ale takie są cechy charakterystyczne przeglądarek z ery kamienia łupanego.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 00:09