Это не просто. А очень просто :) Делаешь ссылку на загрузку. По ссылке делаешь загрузку файла. В скрипте-обработчике прописываешь такую штуковину, в самом начале (код я взял у себя из рабочего скрипта):
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$file_name");
header('Content-Transfer-Encoding: binary');
а затем делаешь вывод собственно содержимого файла. Кстати говоря, вовсе не обязательно этот файл записывать на диск! Можно создавать динамически, точно также, как ПХП-страницу. И тут же отдавать в поток.
В итоге при клике по ссылке у тебя в браузере появляется запрос на скачку файла. Указываешь, куда сохранить и сохраняешь. Переменная $file_name содержит то имя файла, которое увидит юзер при загрузке.
Существенно то, что текущая страница так и остается в браузере нетронутой, не перезагружается.
Профит!
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)