Pobranie pliku zamiast otwieranie go w przeglądarce

Pobranie pliku zamiast otwieranie go w przeglądarce
8 Nov 2013

Domyślnie wiele przeglądarek ma wbudowany czytnik plików PDF. A co jeśli ten plik waży za dużo, a my nie chcemy go pobierać w zipie i bawić się w rozpakowywanie? Tu z pomocą przychodzi nam PHP. Dzięki prostej funkcji możemy zmusić przeglądarkę do pobrania dowolnego pliku na nasz komputer a nie wyświetlać go w przeglądarce.

Skrypt jest bardzo prosty i można go w bardzo prosty sposób zaimplementować do swojej strony. Wystarczy zmienić w poniższego kodu “nazwa-pliku.pdf” na adres do pliku, który chcemy aby pobierał się użytkownikowi na komputer. Kod:

 

<?php
$file = 'nazwa-pliku.pdf'; // Zamień "nazwa-pliku.pdf" na twój plik ( dozwolone wszystkie typy plików )

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

Kopiujemy powyższy kod, wklejamy do notatnika i zapisujemy jako plik *.php. Najprościej dać mu tą samą nazwę co plikowi do pobrania. Następnie przy dodawaniu odnośnika do pliku zamiast końcówki, np. mójplik.pdf ustawiamy mójplik.php

To wszystko 🙂