Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwny problem z pobieraniem plików
Forum PHP.pl > Inne > Komputery i oprogramowanie
TKr
Witam wszystkich,

Otóż ma dziwny problem z pobieraniem pliku w IE7 i Opera 9.02 (inne nie testowane) - ma to miejsce na komputerze mojego szefa więc nie bardzo ma jak to dokładnie przetestować.
Otóż skrypt generuje plik PDF, i przychodzi to jego pobrania - na wszystkich komputerach i przeglądarkach z którymi miałem do czynienia nie było z tym problemu, oprócz tych na komputerku szefa. Myślałem że źle wysyłam header() 'ki, pogrzebałem w sieci itp, ale rozwiązania brak - przynajmniej działającego. Tak sobie pomyślałem że może to wina jakiejś gówni..j wtyczki do przeglądarki, bo zamiast wyskakiwać okienko gdzie zapisać plik - plik jest pobierany i z automatu otwierany, w dziwnym małym okienku:


Wygląda na starszą wersję Adobe Readera - ale którą ? Pobrał bym toi u siebie potestował.
A może jest jakiś specjalny hack na wymuszanie pobierania plików dla Operki ?
bełdzio
pobaw sie naglowkiem Content-Disposition
TKr
Tak się składa że już jest:
header('Content-Disposition: attachment; filename="nazwa_pliku_.pdf"');
Może podkreślę że wszystko jest tak jak być powinno zgodnie z 10 przykazaniami i koranem, ale na sprzęcie szefa ni chuchu.
Kocurro
Witam,

Miałem podobny problem - rozwiązanie u mnie to:

  1. <?php
  2.  
  3. $sTmp = ''; // Zawartość pdf'a
  4.  
  5. header( 'Content-Type: application/pdf' );
  6. header( 'Pragma: public' );
  7. header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
  8. header( 'Content-Length: ' . strlen( $sTmp ) );
  9. header( 'Content-Disposition: attachment; filename="plik.pdf"' );
  10.  
  11. echo( $sTmp );
  12. die();
  13. ?>


O dziwo zamiana ostatnich dwóch linii na die( $sTmp ); nie działała poprawnie.

Może pomoże i u Ciebie.

pozdr.
Łukasz
TKr
Dzięki wszystkim za pomoc. W sumie wykombinowałem to jeszcze inaczej.
Z przyczyn niezależnych od mojego widzimisię byłem zmuszony umieścić stronę która robi refresh z headerka do skryptu pobierającego plik (czyli tego o czym tutaj mówiono) wewnątrz <iframe> (o czym niestety nie wspomniałem), wiem wiem - kto używa iframe sam sobie szkodzi, ale po pierwsze - google nie powinien indeksować tego pliku pdf, a jak już to i tak by to w niczym nie przeszkadzało a skrypt niestety musiał być w innej części internetu.
W każdym razie na Gecko - OK, Webkit a'la Google - też OK, Trident kulał jak zwykle ale u mnie chodziło, generalnie każdy silnik który testuje u siebie chodził i wyskakiwało okienko z pobieraniem pliku ( no może z wyjąkiem Srware/Chrome który od razu minimalizuje) - ale do czego zmierzam ?
Otóż z pomocą przyszedł <javascript> - zrezygnowałem z refresha w headerku i wrzuciłem refresha do scriptu:

  1. <script type="text/javascript" language="javascript">
  2. function pobierz() {
  3. top.location.replace("pobierajacy_skrypt.php");
  4. }
  5.  
  6. setTimeout("pobierz();",2000);
  7. </script>";


a że wymuszam podmianę "top"a to i wymuszam pobranie pliku bez względu na <iframe> - w każdym razie tak się dzieje.
Dziwny jest ten świat - nie ma co smile.gif
webdice
Przenoszę z działu Hydepark.
angel2953
Skoro na innych działało to może podejdź do tego z innej strony sprawdź wersje acrobat reader'a bo prawdopodobnie to jest wina...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.