Basically the way that the upload works is that the file is uploaded to a temporary directory with a temporary name and then it gets copied over to the correct directory and the name is changed.
The reason that the file is uploaded with such a strange name is that the read/write properties aren't set up correctly on either the temp upload directory, or the final location directory. Make sure those directories have read write permissions for everyone.