ci sono centinaia di 3D al riguardo.
in generale dovresti fare una cosa come questa
Codice PHP:
<form action="upload.php" method="post" enctype="multipart/form-data" id="image" name="image">
<
input name="" type="file"><input name="invia" type="submit" value="Invia"></form
la pagina upload.php è
Codice PHP:
<?php
$target_path 
$_SERVER['DOCUMENT_ROOT'] . "galleria/";


$target_path $target_path basename$_FILES['file']['name']); 

if(
move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
    echo 
"il file ".  basename$_FILES['file']['name']).  " è stato caricato";
} else{
    echo 
"c'è stato un errore. riprova!";
}
?>
ovviamente è una cosa BASE.
poi devi fare il controllo se l'immagine è stata caricata e fare l'update della tabella del DB..
ti consiglio di vedere in giro, perchè ovviamente avrai necessità di ridimensionare la foto che mette l'utente.. è pieno di classi in giro..