[eluser]Stefan Hueg[/eluser]
Be aware of the fact that you may run into a memory-limit error on PHP-side because it will read the whole file into your RAM and send it to the browser afterwards.
It's pretty simple and basic and fine for smaller files, but if you need to send larger files than your memory_limit allows you'll have to dive into buffers and chunked downloads.