The download helper is a great way to download files located outside the website root, but the size of files you can download with it is currently limited by the memory_limit defined in php.ini. This is because the entire file is read into memory before outputting to the browser. I've made some changes which loop through the file in smaller chunks and clear the output buffer each loop so the script doesn't run out of memory. I added a parameter of blocksize which specifies the amount of the file to be read at a time, defined in megabytes. The default is 1MB, which should be small enough for most servers with a memory_limit of 8MB or more. However, a developer can pass in a blocksize value if a particular server needs a smaller size or the developer knows his server can handle larger pieces.