actually, I don't think my problem was the memory thing, and as far as I know, php writes the file to disk in the /tmp directory rather than storing it in memory.
I think the problem was simply that a 15 MB file upload (http) can take quite a long time (20 min) even on a fast connection (since upload speeds are slower than download speeds). Also, I think that part of the long upload time issue was the fact that this is on a secure connection (https), and the encryption of the packets adds quite a bit of overhead to each packet (from what I understand)