To bardzo proste. Taki skrypt jest bardzo niebezpieczny , jeśli nie połączymy go z listą, bądź z bazą danych dostępnych plików do pobrania.
Jeśli wkleisz taki skrypt na swoją stronę, to niestety, ale każdy będzie mógł pobrać każdy plik z Twojego serwera.
Przykładowy adres pobierający plik XXX. -> http://www.example.com/download.php?file=xxx.txt <-
<?php
$download_dir = "downloads" . DIRECTORY_SEPARATOR; // Tu ustal swój folder, z którego będą pobierane pliki
if (isset($_GET['file']) && !empty($_GET['file']) { // sprawdzamy czy w adresie została przekazana zmienna `file`
$file_name = $_GET['file'];
if (file_exists($download_dir . $_GET['file']) { // sprawdzamy czy taki plik istnieje
header("Content-Type: application/octet-stream"); // oznajmiamy przeglądrace, że zawartość, którą wyświetli teraz serwer jest do pobrania
header("Content-Transfer-Encoding: Binary"); // pod nazwą zmiennej `file_name`
header("Content-disposition: attachment; filename=\"" . $file_name . "\"");
echo readfile($download_dir . $_GET['file']); // wyświetlamy zawartość pliku podanego w adresie
}
else { // taki plik nie istnieje, tworzymy trigger błędu
trigger_error("File `{$file_name}` doesn't exists.", E_USER_NOTICE);die();
}
}