ciao!
ho creato una piccola classe da richiamare quando viene inviato un form e serve per caricare documenti PDF:
Codice PHP:
<?php

class GestioneFileDirectory {

    public function 
doUpload($dirUpload$file, array $typeArray$maxSize$nome) {
        if (
is_uploaded_file($file['pdf_file']['tmp_name'])) {
            if (!
in_array($file['pdf_file']['type'], $typeArray)) {
                return 
'<h3 class="error">Il file non è un PDF</h3>';
            } elseif (
$file['pdf_file']['size'] > $maxSize) {
                return 
'<h3 class="error">Il file è troppo grande</h3>';
            } else {
                if (
move_uploaded_file($file['pdf_file']['tmp_name'], $dirUpload $nome '.pdf')) {
                    return 
'<h3>File caricato</h3>';
                } else {
                    return 
$file['pdf_file']['error'] . '
'
;
                    
//return '<h3 class="error">Impossibile caricare il file ' . $file['pdf_file']['name'] . '</h3>';
                
}
            }
        } else {
            return 
'<h3 class="error">Si è verficato un errore o non è stato inviato nessun file</h3>';
        }
    }

}
in pratica funzionano tutti i controlli (se non pdf o se la dimensione è troppo grande), solo che in vece di caricare il file mi stampa sempre la riga con l'errore, che però mi ritorna sempre 0.
da quanto ho capito 0 vuol dire che non ci sono errori.
questa la pagina:
Codice PHP:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    <fieldset>
        <legend>Carica file PDF</legend>
        <?php
        
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['btn_pdf'])) {
            if (empty(
$_POST['nome']) || $_POST['sezione'] == '*') {
                echo 
'<h3 class="error">Nome e sezione obbligatori</h3>';
            } else {
                
$typeArray = array(
                    
'pdf' => 'application/pdf'             
                
);
                
$gestFileDir = new GestioneFileDirectory();
                echo 
$gestFileDir->doUpload(PDF $_POST['sezione'] . '/'$_FILES$typeArray102400trim(strtolower($_POST['nome'])));
            }
        }
        
?>
        <input type="text" name="nome" value="" />

        <select name="sezione">
            <option value="*">*</option>
            <?php
            
foreach ($gestFileDir->getPdfDirectory(PDF) as $dir) {
                echo 
'<option value="' $dir '">' $dir '</option>';
            }
            
?>
        </select>

        <input type="file" name="pdf_file" value="" />

        <input type="submit" name="btn_pdf" value="Carica" />
    </fieldset>
</form>
non riesco veramente a capire dove sbaglio.