Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Force-Download, Dziwnę błędy w różnych przeglądarkach
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Ostatnio zająłem się skryptem do ściągania plików. Testowałem tonę skryptów i za kazdym razem natrafiałem na problemy. Najbardyiej pryzjaynz okazał się ten:
  1. <?php
  2. $file = fopen('download/' . $_GET['content'], 'r');
  3. $fsize = filesize('download/' . $_GET['content']);
  4. header('Pragma: no-cache');
  5. header('Content-type: application/x-zip-compressed; name="' . $_GET['content'] . '"');
  6. header('Content-Disposition: attachment; filename="' . $_GET['content'] . '"');
  7. $fsize = filesize('download/' . $_GET['content']);
  8. header('Content-Length: ' . ($fsize));
  9. while (!feof($file)) {
  10. echo fread($file, 1024);
  11. }
  12. fclose($file);
  13. ?>

Niestety nie do końca... Na przykładzie tego pliku lista dziwnych błędów:
1. Firefox 3.0 zatrzymuje download na dłuższą chwilę przy 95%
2. IE7 nie pokazuje progress-bara
3. Opera 9.50 zatrzymuje się na chwilę przy 99% i p mimo tego, że plik się poprawnie sciąga na pasku postępu pokazuje "Błąd"

Może jest jakiś kod kończący wysyłanie pliku o którym nie wiem? Bardzo prosze o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Black-Berry
post
Post #2





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Okazało się, że wszystko jest dobrze. Mam gdzieś błąd przy inkludowaniu zewnętrznej biblioteki. Po usunięciu jej wszystko zaczeł działać poprawnie.


Edit:
Okazuje się, że musi być osobna sesja utworzona specjalknie dla ściągania, żeby nie zablokowac obecnej... Jak w takim razie pobrać zmienne sesyjne (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Nie mam pojęcia.

Edit2:
No i nie uwierzycie w czym był problem.... Nie wiem czy to moze błąd PHP czy luka w moim rozumowaniu ale żeby nie zakleszczyć sesji użytkownika to przed rozpoczęciem wysyłania należy wstawić :

  1. <?php
  2. ?>


Ten post edytował Black-Berry 8.07.2008, 20:50:06
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 29.12.2025 - 07:09