Esto no debes usarlo:
$archivo = $GLOBALS['HTTP_POST_FILES']['userfile']['tmp_name'];
de hecho el array $_FILES ya es "superglobal" por si necesitabas eso ..
Revisa que valores tiens en $_FILES al subir tu archivo:
Código PHP:
echo "<pre>";
print_r($_FILES);
echo "</pre>";
Puede ser también que no tengas permisos para acceder a ese directorio temporal donde PHP deja todo archivo que suba por el (que define: upload_tmp_dir de tu php.ini).
Por seguridad y compatibilidad con otro tipo de configuración de PHP más restrictiva (ejemplo: modo SAFE MODE, restricciones de open_base_dir .. etc), mejor mueve tu archivo con move_uploaded_file() hacia un directorio "temporal" de tu sistio .. ahí lo abres como necesties (fopen() .. o file() simplemente ...etc). Y cuando termines tu proceso, si ya no requieres tu archivo "temporal" .. lo eliminas (unlink(el archivo que subistes))
Un saludo,