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, $typeArray, 102400, trim(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.