Wymyslilem cos takiego. Zeby sobie nie utrudniac zalozmy ze uploadowane pliki to obrazki. Jesli idzie o nazwy plikow: przy uploadzie dodajesz wpis do bazy z id oraz oryginalna nazwa pliku, a plik zapisujesz jako id.rozszerzenie w katalogu np. images.
W katalogu images tworzysz odpowiedni plik
.htaccess zeby uniemozliwic podglad obrazka (ja ci nie napisze bo sie nie znam na tym, choc chyba nietrudne).
I teraz w pliku php, ktory bedzie wywolywany przez link w postaci: download.php?id=, wyciagasz na poczatek z bazy nazwe oryginalna pliku. A pozniej cos takiego:
<?php
header ("Content-type: image/jpeg"); //header w zaleznosci oczywiscie od pliku, ja tu tylko tak na szybko pisze header('Content-Disposition:attachment; filename='.$nazwa_pliku.'.jpg');
?>
pewnie przekombinowalem.. no ale pozno jest i na razie takie cos mi do glowy wpadlo. powodzenia