non conosco le tue specifiche esigenze...
ma per quel che concerne il punto 1 io ho creato un piccolo e semplice script per fare l'upload in una spedifica cartella... ovviamente lo puoi modificate ai tuoi scopi

Codice PHP:
<?php 
/*setta la cartella in cui deve essere fatto l'upload*/
/*setta i file consentiti (in questo momento si consente solo immagini*/

$cartella_upload ="upload/";
$tipi_consentiti = array("image/gif","image/x-png","image/pjpeg","image/jpeg");
 

if(isset(
$_POST['reload']))
    {
    if(!isset(
$_FILES)) $_FILES $HTTP_POST_FILES;
    if(!isset(
$_SERVER)) $_SERVER $HTTP_SERVER_VARS;
    
    
$control_file=1;

    if(!
is_uploaded_file($_FILES["upfile"]["tmp_name"])) 
            { 
            
$message="problemi nell'upload del file"
            
$control_file=0
            }
    else if(
trim($_FILES["upfile"]["name"]) == "")
        {
        
$message="Non hai selezionato alcun file";
        
$control_file=0;
        }
    else if(!
in_array($_FILES["upfile"]["type"],$tipi_consentiti)) 
            { 
            
$message="Il file non è di un tipo consentito, sono ammessi solo i seguenti: .gif, .jpg, .jpeg, .png"
            
$control_file=0
            }
    else if (!
move_uploaded_file($_FILES['upfile']['tmp_name'], $cartella_upload.$_FILES["upfile"]["name"])) 
            { 
            
$message="La cartella in cui fare l'upload non esiste o non ha i permessi"
            
$control_file=0
            }
    
    if(
$control_file==1)
        {
        
$message="Upload eseguito correttamente";
        }
    }



?> 
<html>
<body>

<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">


Seleziona una immagine</p>
<input type="file" name="upfile">
<input type="hidden" name="reload" value="1">
<input type="submit" value="invia">
</form>
<h1>

<?php echo $message?>

</h1>
</body>
</html>