Well, have you tried increasing the max upload filesize in php using ini_set()
ini_set('upload_max_filesize', '10M');
The only reason you'd get server errors, is when something goes wrong with the execution of the script. An internal server error is hard to pinpoint. But my guess is that the server could be running out of memory, or something along those lines.....