en realidad no es algo del otro mundo, y como dice Cluster solo debes revisar las FAQ`s de ete foro y el manual de php o incluso las memorias de un aprendiz de php (
www.rinconastur.com/php)
En palabras:
Debes crear un formulario donde puedas elejir al archivo que deseas subir, con un campo file y debe ser un form multipart/form-data.
Luego en la página donde procesaras esta informacion compruebas que todo sea correcto y utilizas move_uploaded_file() y listo...
Un ejemplo
Código PHP:
<form method="POST" action="subir.php" nctype="multipart/form-data" >
<input type="hidden" name="LIMITE" value="10000">
<input type="file" name="file">
<input type="submit" name="enviar" value="Enviar" >
</form>
subir.php
if($_POST['enviar']){
if(!move_uploaded_file($_FILES['file']['tmp_name'],"directorio/".$_FILES['file']['name'])){
echo "No se puede subir";
}else{
echo "Exito";
}
}
Básicamente eso, claro que puedes hacer bastantes verificaciones antes de subir el archivo pero eso queda a tu gusto
Algo aconsejable que puedes hacer para debug es print_r($_FILES['file']); lo que te devolvera el deglose del array $_FILES
con el nombre del archivo, el nombre temporal, el tipo, el tamaño, y el codigo de error que pudo haber ocurrido (si es 0 o nada significa q esta todo bien)
Saludos