A me questo codice funziona perfettamente:

Codice PHP:
<form name="gestisci" method="POST" enctype="multipart/form-data">              
<input type="hidden" name="action" value="upload" /> 
<input name="disegno" type="file" size="10" />
<input type="submit" name="funzione" value="Inserisci" />
</form>
<pre>
<?php
define
('UPLOAD_DIR'dirname(__FILE__) . '/uploads/');  

if (!
file_exists(UPLOAD_DIR)) {
    die(
'Destination Folder Not Found!');
} elseif (!
is_writable(UPLOAD_DIR)) {
    die(
'Destination Folder Not Writable!');
}

if (isset(
$_POST['action']) && ($_POST['action'] == 'upload')) {
    if (
is_uploaded_file($_FILES['disegno']['tmp_name'])) {
        if (
move_uploaded_file($_FILES['disegno']['tmp_name'], UPLOAD_DIR $_FILES['disegno']['name'])) {
           echo(
"File is valid, and was successfully uploaded.\r\n");
        } else {
           echo(
"Possible file upload attack!\r\n");
           
print_r($_FILES);
        }
    } else {
        die(
'Invalid file!');
    }
}

?>
</pre>