I found it. The path I was giving was wrong, so it returned a faulty filesize, thus ending the download after 4KB. I was trying to use /directory/filename instead of directory/filename.
Thanks for the help.
The readfile didn't work though, it tried to send the zip file directly to the screen as text. I probably had something else set up wrong for that though. 🙂