Witam
Lekko zmodyfikowałem/poprawiłem (po uwagach Waszych) i nic więcej nie będę modyfikował, bo nic nie jest doskonałe i zawsze będzie jakaś uwaga

Może ten kawałek kodu w takiej postaci komuś się przyda, bo gotowców mało takich od a do z ... sam szukałem i wiem

Na pewno cyka na FF 3.0.10 oraz IE 7.0.6
<?php
//Pobieraczka v0.1
hehe //error'ek
define("ERROR_FILE","Nie ma takiego pliku!"); //tylko liczby a jak nie to die 
$int_options = array("options"=>array
("min_range"=>1, "max_range"=>10
)); if (!($pliczek = filter_var
(trim($_GET['id']),FILTER_VALIDATE_INT
,$int_options))) die(ERROR_FILE
); // jakis katalog
$pliczki_dir = './245145/';
// lista plikow ktore mozna pobrac
$pliczki_tab = array('','plik1.cdr','plik2.cdr'); // lista plików ktore można pobrać!
$link_to_file = $pliczki_dir.$pliczki_tab[$pliczek];
// czy plik istnieje jak nie to die 
// plik do stringu a jak pusty to die
// plik ok - wysyłanie
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"".$pliczki_tab[$pliczek]."\";"); header("Content-Transfer-Encoding: binary"); ?>
Wiem że można by i zrobić po kawałku wysyłanie i można by do tego też dodać po przerwanym downloadzie kontynuację (
skrypcik), jest wiele opcji i z kawałka kodu się zaraz zrobi skrypt z użytkownikami i z bazą danych i licznikiem ściągania itp itd... ale tego na razie nie potrzeba .. ma być proste i wydajne ... może lekko obciąża serwer (myślę, że nie aż tak bo pliki jakie będą pobierane to maks 40 kB), ale cóż, zawsze jest jakaś słaba strona (wiem, że staramy się Tu aby tych stron nie było)

Pozdr.
KaO
Dziękuję za rady/uwagi
Witam ponownie
Troszkę mi to wierciło w głowie dziurkę z tym wysyłaniem step by step. W razie
W zmodyfikowałem kod:
<?php
//Pobieraczka v0.2
hehe //error'ek
define("ERROR_FILE","Nie ma takiego pliku!"); //tylko liczby a jak nie to die
$int_options = array("options"=>array
("min_range"=>1, "max_range"=>10
)); if (!($pliczek = filter_var
(trim($_GET['id']),FILTER_VALIDATE_INT
,$int_options))) die(ERROR_FILE
); // jakis katalog
$pliczki_dir = './245145/';
// lista plikow ktore mozna pobrac
$pliczki_tab = array('','plik1.cdr','plik2.cdr'); // lista plików ktore można pobrać!
$link_to_file = $pliczki_dir.$pliczki_tab[$pliczek];
// czy plik istnieje jak nie to die
// kawaleczki
$down_rate = 1024*50;
// otwieramy pliczek jak nie to die
if (!($file_h = @fopen($link_to_file, "r"))) die(ERROR_FILE
); // wszystko ok - wysyłanie, najpierw naglowki
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"".$pliczki_tab[$pliczek]."\";"); header("Content-Transfer-Encoding: binary"); // wysyłanie pliczku step by step
}
?>
I teraz moje pytania?
1. Co z plikiem jak będzie np. 10 mb i na raz (czysto teoretycznie) 10 osób będzie chciało go pobrać? Nie będzie problemu z odczytem przez to że jest step by step?
2. Czy tu nie ma "dziurek" jakiś ?>:
Pozdr.
KaO
Ps. Czekam na jakiś "odzew"