Código HTML:
<form method="post" enctype="multipart/form-data" action="script.php">
<input type="file" id="archivo" name="archivo" />
<input type="submit" value="subir archivo" />
</form>
Código PHP:
$root = getenv("DOCUMENT_ROOT"); // recogemos el directorio raíz
$nombre = $_FILES['archivo']['name']; // el nombre original del archivo
$nombre_tmp = $_FILES['archivo']['tmp_name']; // el nombre temporal, con el que lo guarda php
move_uplodaded_file( $nombre_tmp , $root.'archivos_subidos/'.$nombre );
tambiés puedes recoger otros datos, como el tipo mime del archivo o el peso.
http://php.net/manual/es/reserved.variables.files.php
recuerda establecer permisos de escritura en la carpeta donde vayas a guardar los archivos que subas.
un saludo.