wyświetlanie 2 stron pdf z base64

0

w pewnej tablicy mam 2 wartości base64 pliku pdf. Ustawiam header application/pdf, wykonuje foreach i wyświetlam na ekranie każdą z nich. Tylko za każdym razem dostaję jedną stronę, a powinny być 2.

W czym tkwi problem? wartości wyświetlane przez foreach są poprawne, nie ma mowy, że może źle podaje wartości.

Nikt nie wie?

0

Z twojego skąpego opisu wynika, że podajesz dwa razy ten sam adres i wywołanie uruchamia iteracje pętli. Wg mnie problem wynika z tego, że plugin przeglądarki do pdf nie pobiera za drugim razem strony, bo taki adres ma w keszu. W takiej sytuacji do zapytania dodaje się jakiś parametr, który się zmieni przy drugim zapytaniu.

0

dziwne

Pętla foreach:

foreach($ab as $k => $v)
        {
           header('Content-type:application/pdf',false);
           echo base64_decode($v);
        }

Warning: Indexing all PDF objects, Ten pdf nie moze wyswietlic sie poprawnie poniewaz zawiera bledy

foreach($ab as $k => $v)
        {
            echo '<embed src="data:application/pdf;base64,'.$v.'" type="application/pdf" width="100%" height="100%" /><br><br>';
        }

dziala tylko zwiesza przegladarke, da sie cos takiego zrobic ale przy uzyciu header?

0

Zastanów się, nie da się wyświetlić tak 2 pdfów, to tak jak byś chciał wysłać 2 pliki np dupa.rar i cycek.rar i żeby klient pobrał to na raz, to po prostu nie przejdzie...
Może jak byś miał odpowiednią wtyczkę/obiekt flash która umożliwi takie coś to mażesz się bawić...

0

da sie cos takiego zrobic ale przy uzyciu header?

Nie.
Nagłówki możesz wysłać tylko na samym początku, nim cokolwiek zostanie wyświetlone przez echo/print/wtf.

0

nagłówek header('Content-type:application/pdf',false); wystarczy że wyślesz tylko raz przed pętlą
nie to jest tutaj problemem tylko to że łączysz dwa pliki zwyczajnie je do siebie sklejając - nie możesz zrobić w ten sposób - pliki mają nagłówek który określa jak duży jest plik i program odczytujący zwyczajnie zignoruje cokolwiek dokleisz po tym rozmiarze (ty doklejasz drugi plik pdf)

jeśli chcesz połączyć dwa pliki .pdf w jeden - musisz skorzystać z biblioteki do obsługi pdfów - otworzyć je, skleić w całość, zapisać i dopiero wysłać do klienta
ewentualnie możesz przesłać dwa pliki do zapisania ale będą one osobno a nie w jednym pliku - w takim przypadku zrób po prostu drugi plik który na podstawie parametru GET będzie podawał żądany plik, natomiast pierwszy skrypt php będzie po kolei podawał te pliki do ściągnięcia - najlepiej przez javascript, użytkownik musi wtedy w przeglądarce zatwierdzić zgodę na pobranie wielu plików

1 użytkowników online, w tym zalogowanych: 0, gości: 1