Jak zrobić, żeby PDF na stronie się pobierał, a nie otwierał?

Masz stronę internetową, na której udostępniasz pliki PDF, ale zamiast pobierać się automatycznie, otwierają się w przeglądarce? To może być frustrujące zarówno dla Ciebie, jak i dla Twoich użytkowników. Ale spokojnie, rozwiązanie jest prostsze, niż mogłoby się wydawać. W tym artykule pokażę Ci krok po kroku, jak sprawić, żeby PDF-y na stronie były pobierane bez otwierania. Dodatkowo, dla bardziej zaawansowanych, dodam trochę kodu, który pomoże Ci wprowadzić zmiany. Zaczynamy!

Dlaczego PDF-y otwierają się w przeglądarce?

Przeglądarki takie jak Google Chrome, Firefox czy Edge domyślnie otwierają pliki PDF wbudowanym czytnikiem, zamiast je pobierać. Jest to wygodne dla osób, które chcą szybko zobaczyć zawartość pliku, ale bywa problematyczne, gdy PDF ma być pobrany. Dzieje się tak, ponieważ serwer nie wymusza opcji pobierania, a przeglądarka interpretuje plik jako coś, co można wyświetlić w oknie.

Jak to naprawić?

1. Zastosuj odpowiednie nagłówki HTTP

Najbardziej profesjonalny sposób to edycja serwera, żeby wysyłał odpowiednie nagłówki. W nagłówkach HTTP możesz wskazać przeglądarce, że PDF ma być pobrany zamiast otwierania.

Co trzeba zrobić?

Jeśli masz dostęp do konfiguracji serwera, wystarczy dodać poniższy fragment kodu w pliku .htaccess (jeśli Twój serwer to Apache):

<FilesMatch "\.(?i:pdf)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Jak to działa?

  • ForceType application/octet-stream: Wskazuje, że plik powinien być traktowany jako coś do pobrania.
  • Header set Content-Disposition attachment: Wymusza, żeby przeglądarka zaproponowała zapisanie pliku.

Jeśli korzystasz z serwera Nginx, dodaj taki fragment do jego konfiguracji:

location ~* \.pdf$ {
    add_header Content-Disposition "attachment";
    default_type application/octet-stream;
}

2. Dodanie atrybutu download w HTML

Jeśli nie masz dostępu do serwera albo chcesz szybkie i proste rozwiązanie, możesz dodać specjalny atrybut do swojego kodu HTML.

Przykład:

Zamiast standardowego linku do PDF-a:

<a href="dokument.pdf">Pobierz PDF</a>

Zastosuj atrybut download:

<a href="dokument.pdf" download>Pobierz PDF</a>

Jak to działa?

Atrybut download informuje przeglądarkę, że plik powinien być pobrany, a nie otwarty. Co ważne, możesz także określić nazwę pobieranego pliku:

<a href="dokument.pdf" download="moj_dokument.pdf">Pobierz PDF</a>

3. Korzystanie z języka PHP

Jeśli Twoja strona korzysta z PHP, możesz wykorzystać skrypt do obsługi pobierania plików. Oto jak to zrobić:

Przykład skryptu PHP:

Utwórz plik PHP, np. download.php, i wklej poniższy kod:

<?php
$file = 'ścieżka/do/twojego_pliku.pdf'; // Ścieżka do pliku PDF

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    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;
} else {
    echo "Plik nie istnieje.";
}

Jak to działa?

  • header(): Ustawia odpowiednie nagłówki HTTP, wymuszając pobieranie.
  • readfile(): Wysyła zawartość pliku do przeglądarki.
  • Walidacja: Sprawdza, czy plik istnieje, zanim spróbuje go wysłać.

Jak wywołać skrypt?

Zamiast linku do PDF-a, odwołaj się do skryptu:

<a href="download.php">Pobierz PDF</a>

4. Zadbaj o responsywność i UX

Nie zapominaj o użytkownikach mobilnych! Linki do pobierania mogą działać inaczej na telefonach. Dodanie prostego komunikatu, np. „Kliknij, aby pobrać plik”, może pomóc w uniknięciu zamieszania.

Co, jeśli nic nie działa?

Jeśli po zastosowaniu powyższych metod nadal masz problem, sprawdź:

  • Czy serwer poprawnie obsługuje pliki .htaccess (dla Apache).
  • Czy cache przeglądarki nie przechowuje starych ustawień.
  • Czy użytkownicy korzystają z przeglądarki obsługującej odpowiednie standardy HTML5 (dla atrybutu download).

Dlaczego to takie ważne?

Wymuszenie pobierania plików PDF może być kluczowe w przypadku:

  • Materiałów poufnych (np. faktury, raporty), które użytkownik powinien przechowywać lokalnie.
  • Formularzy i dokumentów, które muszą być wypełniane offline.
  • Lepszej kontroli nad tym, jak użytkownicy korzystają z Twoich treści.

Wiesz już, jak zrobić, żeby PDF na Twojej stronie się pobierał, a nie otwierał. Możesz skorzystać z edycji serwera, prostych trików HTML lub skryptu PHP – wybór zależy od Twoich potrzeb i możliwości technicznych. Pamiętaj, żeby testować wprowadzone zmiany, bo każda przeglądarka może zachowywać się trochę inaczej.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl