Well, the file upload could be interrupted by:
Out of space in destination
Connection interruption
Damage file
Wrong name
Wrong extension
etc...
The best you can do is to verify and protect the upload process with does verifications before actually send the file to the server...
The first time I've made a file upload script, I used 1 line of code, now, the same script seems like a web page ;)
EDITED (example for controlling extension and file size):
if ((
($file_up["type"] == "image/gif") ||
($file_up["type"] == "image/jpeg") ||
($file_up["type"] == "image/jpg") ||
($file_up["type"] == "image/pjpeg") ||
($file_up["type"] == "image/bmp") ||
($file_up["type"] == "image/tiff") ||
($file_up["type"] == "image/png")) &&
($file_up["size"] < 1050000))
{
code if all ok...
}