Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: header() - wielokrotny download
Forum PHP.pl > Forum > PHP
redman2
Czy spotkal sie ktos z problemem wysylania naglowkow w petli?

W moim przypadku chodzi o download kilku plikow z bazy MySQL.

Jezeli zrobie to w petli, dziala tylko raz. Dla jednego naglowka. Potem wychodzi calkowicie ze skryptu.

Jak ten problem rozwiazac?

  1. <?php
  2.  
  3.  
  4.  
  5. foreach ($keyarray as $key => $value) {
  6.  
  7. if (strstr($key,'item_number')!=FALSE) {
  8.  
  9.  
  10.  
  11. $dbQuery = "SELECT * FROM micropayments WHERE id = '$value' ";
  12.  
  13. $result = mysql_query($dbQuery) or die("Couldn't get file list");
  14.  
  15. if(mysql_num_rows($result) == 1) {
  16.  
  17. while ($row = mysql_fetch_array($result)) {
  18.  
  19. $fileContent = $row['pdf'];
  20. $fileTitle = $row['title'].".pdf";
  21.  
  22. if(isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT'])) {
  23.  // IE Bug in download name workaround
  24.  ini_set( 'zlib.output_compression','Off' );
  25.  } 
  26.  
  27.  header("Pragma: public");
  28.  header("Expires: 0");
  29.  header("Cache-Control: public");
  30.  header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  31.  header("Content-type: application/pdf");
  32.  header('Content-Disposition: attachment; filename="' . $fileTitle . '"');
  33.  header("Content-Transfer-Encoding: binary");
  34.  
  35. echo $fileContent;
  36. }
  37. } else echo "Record doesn't exist.";
  38.  
  39. }
  40.  
  41. }
  42.  
  43. ?>
nospor
no niestety. mozesz wyslac tylko jeden plik do downloadu na raz. Jak chcesz kilka, to musisz znich zrobic paczkę i dopiero ją wyslac
redman2
Dziekuje za odpowiedz. Jaka paczke ?
nospor
oj...
no naprzyklad plik .zip (znaczy spakowany winksmiley.jpg ). utworzony ze wszystkich plikow co chcesz wyslac. O zipie bylo juz na forum smile.gif
redman2
Tylko jak zrobic zipa z pdf'ow, ktore trzymam w polu BLOB ?

Przeciez pobieram te pliki osobno i osobno je musze przetwarzac. Nie moge z tego przeciez zrobic zipa questionmark.gif?

Poza tym jak "zzipujesz" cos z poziomu php ?
nospor
Cytat
Poza tym jak "zzipujesz" cos z poziomu php ?
Jak juz pisalem: byly o tym dyskusje na forum, wystarczy poszukac
ype=topics&highlite=zip' target='_blank
redman2
Dzięki za sarkastyczną uwagę. biggrin.gif

Zippowanie nic mi nie da, bo pliki muszą być ściągane niezależnie, w sensie osobno.
Nie może to być jeden plik.

Może coś na zasadzie zapamiętania id w sesji i kolejnego otwierania nowego okna, w którym to wyciągane będzie id z tejże sesji i wywoływany header questionmark.gif?

Nie wiem, kombinuję.
nospor
Cytat
Dzięki za sarkastyczną uwagę
Z poslkiego byłem cienki i może czegoś nie łapię. która to uwaga niby była sarkastyczna?

Cytat
Może coś na zasadzie zapamiętania id w sesji i kolejnego otwierania nowego okna, w którym to wyciągane będzie id z tejże sesji i wywoływany header questionmark.gif?
Hmmm, jakoś sobie tego nie wyobrażam.
A moze tak:
strona generuje ci js, ktory otwiera kolejne popupy, a każdy z nich wysyla ządanie do konkretnego pliku?

Cytat
Nie wiem, kombinuję.
Ja tez smile.gif
redman2
Sarkazm? Z tą uwagą na temat wyszukiwania. Zresztą nieważne. Trzymajmy się tematu.

JS też nie jest rozwiązaniem idealnym, bo mój system polega na sprzedaży PDF'ów, które są możliwe do ściągnięcia dopiero po pozytywnej weryfikacji zapłaty przez PayPal.

Co, jeżeli ktoś zapłaci i nic mu nie "wyskoczy" bo ma zablokowane JS?

Nie jest to, wydaje mi się, rozwiązanie profesjonalne i może stwarzać potrzebę dodatkowego wysyłania ludziom PDF'ów ręcznie (co nie bardzo mi na "rękę").

Pozdrawiam
nospor
Cytat
Sarkazm? Z tą uwagą na temat wyszukiwania
Jesli tak to odebrales - to przepraszam. To nie bylo moim zamiarem.

NIe do konca rozumiem, czemu to nie może być jedna paczka. Skoro koles zaplacil za zestaw pdf'ow, to co mu za roznica jak je dostanie? PRzeszkadza w czyms zip? Tylko mu sie to szybciej ściągnie. Nic, tylko się cieszyc winksmiley.jpg

Ewentualnie mozesz na stronie wygenerowac linki do kazdego pdf i niech se pokolei klika w nie. Dodaj dodatkowo mozliwosc pobrania paczki. Bedzie mial wybor: klikac x razy czy raz
redman2
Nie ma sprawy, żartowałem smile.gif

Nie mogę wygenerować linka do pdf'a, ponieważ wszystko musi iść przez POST. Nie może być jawnych danych. Dlatego też wrzuciłem wszystkie PDF'y do BLOB'a. Nie są trzymane fizycznie na serwerze.

Mechanizm "downloadu" generowany jest na podstawie raportu otrzymanego od PayPal.
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.