Una classe per gestire l’upload di un file in PHP
Oggi ho creato una classe che ritengo utile e che mi fa piacere condividere con voi, ecco come si usa:
La classe è reperibile quì
Prima pagina: un form di invio dati
Copiare quanto segue in una pagina ed omettere i cancelletti all’inizio delle righe
<form action=”seconda_pagina.php” method=”post” enctype=”multipart/form-data” name=”form1″>
<input type=”file” name=”to_upload”>
<input type=”submit” name=”Submit” value=”Submit”>
</form>
Seconda pagina (seconda_pagina.php)
Apriamo i tags php:
<?
Ed ora cominciamo ad usare la classe:
$upload=new fileUpload;
Configuriamo l’opzione safe_mode (default: 1)
0: Niente safe_mode
1: Non permette allo script di gestire le cartella madri, ovvero permette solo di usare la directory corrente e tutte le sue subdirectories
$upload->safe_mode=1;
Configuriamo l’opzione allow_overwrite:
0: Non permette agli utenti di sovrascrivere files
1: Permette agli utenti di sovrascrivere files
$upload->allow_overwrite=1;
Lista delle estensioni consentite (indicare senza il “.”, es. array(“png”, “gif”))
$upload->allowed_extensions=array(“jpg”,”jpeg”,”bmp”,”gif”,”png”,”tif”, “wav”);
Dimensione massima del file in byte
$upload->max_size=”3145728″;
La cartella nella quale salvare i files
$upload->setTargetDir(“mydir”);
File da uploadare (dove “to_upload” indica il nome del campo file del modulo)
$upload->setTargetFilename($_FILES['to_upload']['name']);
Nome temporaneo del file (non cambiare se non sai cosa tocchi
)
if($upload->saveFile($_FILES['to_upload']))
{
Azioni da intraprendere qualora il trasferimento fosse andato a buon fine
print “Tutto ok!”;
}
Se vogliamo informare l’utente del massimo numero di bytes inviabile possiamo scrivere quanto segue
print “<strong>Dimensione massima file</strong>: “.$upload->getMaxSize().” bytes<br>\n”;
Configuriamo la modalità debug (questo parametro va inserito sempre in fondo)
0: Modalita’ debug disattivata
1: Modalita’ debug attivata: dei messaggi ti aiuteranno a capire dove si nascondono i problemi
$upload->debug(0);
Chiudiamo ora i tags
?>
Diamo ora uno sguardo al codice completo:
<?
$upload=new fileUpload;
$upload->safe_mode=1;
$upload->allow_overwrite=1;
$upload->allowed_extensions=array(“jpg”,”jpeg”,”bmp”,”gif”,”png”,”tif”, “wav”);
$upload->max_size=3145728;
$upload->setTargetDir(“mydir”);
$upload->setTargetFilename($_FILES['to_upload']['name']);
if($upload->saveFile($_FILES['to_upload']))
{
print “Tutto ok!”;
}
print “<strong>Dimensione massima file</strong>: “.$upload->getMaxSize().” bytes<br>\n”;
$upload->debug(0);
?>