1.- deberías probar antes (quizás lo haces, pero de todas formas escribo porque me gusta

) que se haya subido el archivo, con is_uploaded_file().
2.- Probando algunos sitios de forma local, me ha pasado lo mismo. Pero luego al subir el programa a internet el problema desaparecía. Puede ser tema de configuración de Apache. ¿estás probando de forma local o en internet?
Pruébalo en Internet y si el error sigue, pos creo que deberías enviar los códigos completos, porque no parece haber errores en los que envías.
Saludos.