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:
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. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 20 Dołączył: 14.06.2007 Ostrzeżenie: (0%)
|
zawsze robiłem w ten sposób:
Kod Header("Content-disposition: attachment; filename=\"".$_GET["download"]."\""); Header("Content-type: application/force-download"); readfile($_GET["download"]); i działało |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%)
|
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
Nic to nie daje.
Coś chyba jednak mam źle w założeniach bo znalazłem następny problem: -> Jeśli coś się sciąga to dana przeglądarka nie pozwala na przejście do innej strony z tego samego serwera. Czemu takie coś zapycha całą sesję i już nic nie można zobić do końca ściągania ? Można coś z tym zrobić ? |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Wywal to: application/x-zip-compressed i dodaj odpowiedni nagłówek w zależności od rodzaju pliku. Jeśli nie wiadomo jaki rodzaj pliku to dajesz application/octet-stream. Powinno zadziałać.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
Udało mi się zrobić to tak żeby nie zwalniało przy 95%. W tym artykule jest opis.
Nie zmienia to jednak faktu, że force-download pżera całą sesję i w przypadku dużych plików musisz czekać aż się ściągnie żeby móc przejść na inną podstronę. |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Tego właśnie linka chciałem Ci wkleić, ale niestety nie działa u mnie.
Zerknij jeszcze na obsługę połączeń. Znajdziesz tam kilka ciekawych informacji na temat ściągania plików. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%)
|
Dzięk, ale jakoś nie mam pomysłu co mógłbym z tym zrobić... :/ Podczas ściągania pliku serwer nie obsługuje z danej sesji nic oprócz wysyłania go więc jeśli przerwę wysyłanie to całe ściąganie szlak trafi.
Edit: Niezłe ostatnie zdanie mi wyszło ale mam nadzieję, że wiesz o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Black-Berry 8.07.2008, 19:26:12 |
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
No właśnie nie. W tym linku, o ile się nie mylę, opisana była metoda ściągania plików częściowych, np przy pomocy download managerów. Testowałem i działało bez zarzutu, a ściąganie uruchamiałem w osobnym oknie.
edit Twoim linku |
|
|
|
Post
#11
|
|
|
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ć :
Ten post edytował Black-Berry 8.07.2008, 20:50:06 |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 23:38 |