Hola,
La solucion es tan sencilla como usar una variable temporal. Prueba con:
Código PHP:
if($archivo !=""){
$nombre_archivo = str_replace(" ", "_", $archivo_name);
@copy($archivo,"upload/".$nombre_archivo);
$pathfile="upload/".$nombre_archivo;
}
Usando $nombre_archivo en lugar de $achivo_name te evitas el problema de andar modificando la variable creada por PHP.
Por cierto, el error que te da de que no existe el fichero es porque en *nix los nombres de ficheros no pueden contener espacios, con lo que no te a guardado el fichero.
Espero haber sido de ayuda.