mm .. ahora que lo miro .. $_FILES['archivo'] siempre estará definido si usas el formulario ejemplo .. así q sería empty() en lugar de isset() ...
Código PHP:
if (!empty($_FILES['archivo']['name'])){
Los errores que proboca son por pasarle al fopen() una cadena vacia como nombre de archivo...
Un saludo,