Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] wymuszenia pobrania pliku txt
Forum PHP.pl > Forum > Po stronie przeglądarki
chomiczek
Słuchajcie mam takie pytanie, pobieram sobie pewne rzeczy z formularza i przesyłam ja $_post'em do skryptu, który pobiera odpowiednie pozycje z bazy danych i na ich podstawie tworzy plik *.txt w określonej lokalizacji.. W momencie zdarzenia success do kodu wkładam sobie coś takiego:
  1. <script type="text/javascript">parent.parent.document.location.href = "MOJ URL";</script>


i niby wszystko jest ok, ale w bieżącym oknie otwiera mi zawartość pliku tekstowego, jeżeli ustawie plik jako ZIP jest wszystko ok, bo wyskakuje monit o to czy otworzyć czy zapisać.. można jakoś wymusić, aby zawsze ten monit wyskakiwał?

Kartofelek
musisz pobawić się headerem dla wysylanego pliku. wyslij to nie jako txt a jako binarny i wtedy ci wyskoczy pytanie smile.gif
Tutaj masz to dobrze wytłumaczone:
http://tutorialzine.com/2011/05/generating...javascript-php/
thek
Najprościej walnij nagłówek taki, którego przeglądarka nie rozpozna bo jest zbyt ogólny by coś miała z nim powiązanego. Kombinować można tak:
  1. header("Content-Description: File Transfer");
  2. header("Content-Disposition: attachment; filename=$file");
  3. header("Content-Type: application/force-download"); //tego czasem wymaga IE, dla nie IE lepiej użyć Content-Type jako octet-stream lub podobne bo potraktuje dane jako plik binarny.
  4. header("Content-Transfer-Encoding: binary");
  5. header("Content-Length: ".filesize( $file ) ); //czasem przeglądarki wymagaja podania wielkości pliku

Uwaga na:
  1. header("Cache-Control: no-cache");
  2. header("Pragma: no-cache");

Z komentarzy w manualu wynika bowiem, że dla IE mogą sprawiać problemy i lepiej pomyśleć o Expires.

Ogólnie poczytaj header
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.