• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlanie PDF na stronie - problem.

Object Storage Arubacloud
0 głosów
1,502 wizyt
pytanie zadane 7 maja 2017 w PHP przez niezalogowany

Witam, mam pewien problem. Chciałbym aby mój skrypt wyświetlał plik PDF na całą stronę. Używam do tego:

echo '<embed src="folder/'.$a.'.pdf" width="100%" height="100%" type="application/pdf">';

Działa to, tylko wyświetla mi się z takimi marginesami, u góry, doły i po bokach. Chciałbym temu zaradzić, bo jak ktoś tam kliknie, zbadaj element, to będzie wiedział w jakim folderze są przetrzymywane pliki PDF. A to ważne, aby nikt się nie dowiedział.

Pozdrawiam i z góry dziękuje za pomoc.

1
komentarz 7 maja 2017 przez Magicone Nałogowiec (45,100 p.)
Ale ty wiesz, że jak wyświetlasz pdf'a w przeglądarce przez <embed>, to i tak każdy będzie mógł go pobrać jak odpowiednio pokombinuje?
komentarz 7 maja 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Odpowiednio pokombinuje = wciśnie CTRL+U (skrót do wyświetlania źródła w Chrome) :v

Już nie wspominając o dev toolsach.

2 odpowiedzi

+2 głosów
odpowiedź 7 maja 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 7 maja 2017
 
Najlepsza

Nie wiem co konkretnie robisz, bo można by po prostu dać odpowiednio długie nazwy dla plików/folderów, wyłączyć listowanie w serwerze www i nikt tego nie zgadnie.

Jeśli chcesz koniecznie wyświetlać plik PDF nie ujawniając jego adresu to może po prostu zwracaj go przez readfile() ustawiając wcześniej odpowiedni nagłówek? Wtedy kierował kogoś będziesz na plik PHP, a tylko serwer będzie znał właściwą lokalizację pokazanego pliku.

komentarz 7 maja 2017 przez niezalogowany

Skorzystałem z readfile() w następujący sposób:

$file = 'folder/'.$a.'.pdf';
if (file_exists($file)) {
	header('Content-Description: File Transfer');
	header('Content-Type: application/pdf');
	header('Content-Disposition: attachment; filename="'.basename($file).'"');
	header('Expires: 0');
	header('Cache-Control: must-revalidate');
	header('Pragma: public');
	header('Content-Length: ' . filesize($file));
	readfile($file);
	exit;
}

Tylko zamiast wyświetlić, poprostu się pobiera, a ja chce aby się wyświetliło w przeglądarce, tak jak ma to miejsce poprzez wpisanie normalnej ścieżki do pliku www.

komentarz 7 maja 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Wydaje mi się, że sam nagłówek z Content-Type powinien wystarczyć (do tego oczywiście readfile). Poza tym dałbym typ application/pdf, może też przez to.
komentarz 7 maja 2017 przez niezalogowany
Niestety nie, to samo. Jedyne co się zmieniło to, że jak pobiera to wykrywa, że to plik PDF i proponuje otwarcie w Przeglądarce plików PDF.
komentarz 7 maja 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Hmm, może to też zależy od jakiegoś ustawienia przeglądarki, bo przetestowałem i u mnie działa, tzn. po wejściu na adres pliku PHP otwiera w przeglądarce dokument PDF.

http://others.waluk.pl/forum/test.php

<?php

header('Content-Type: application/pdf');
readfile('test.pdf');
komentarz 7 maja 2017 przez niezalogowany

Usunąłem, te pierdoły, i teraz działa. Dzięki laugh.

0 głosów
odpowiedź 7 maja 2017 przez CzikaCarry Szeryf (75,340 p.)

Ale przecież ktoś może kliknąć F12 lub popatrzeć na pakiety lecące do komputera. W taki sposób nie ukryjesz ścieżki do pliku. Jedynym sposobem jest konwertowanie tego pdf'a do base64, a potem wyświetlanie tego w php.

http://stackoverflow.com/questions/34182379/php-base64-encode-a-pdf-file

Podobne pytania

0 głosów
1 odpowiedź 464 wizyt
+1 głos
1 odpowiedź 562 wizyt
0 głosów
2 odpowiedzi 333 wizyt
pytanie zadane 9 września 2016 w JavaScript przez Lid$ Mądrala (6,300 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...