Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] wymuszenia pobrania pliku txt
chomiczek
post 27.06.2011, 10:17:23
Post #1





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

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


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ł?



--------------------
created by chomiczek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Kartofelek
post 27.06.2011, 12:16:15
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 4
Dołączył: 27.09.2007

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


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/
Go to the top of the page
+Quote Post
thek
post 27.06.2011, 12:48:21
Post #3





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




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


--------------------
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

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: 19.07.2025 - 04:08