Salve a tutti,
ho un piccolo problema.
Ho la seguente pagina php dove è possibile per l'utente scegliere e caricare su webserver un file.
Ho impostato come dimensione massima 20 MB.
Il mio problema è il seguente:
se scelgo un file superiore a 20 MB non mi viene dato il messaggio di errore ma ritorna alla pagina di selezione come se niente fosse.
Ecco il codice:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<form ENCTYPE="multipart/form-data" action="up.php" method="post">
<input type="file" id="file1" name="file1"/>
<input type="submit" value="upload"/>
<?
//verificare xkè quando si fa l'upload di un file molto grande dice nessun file selezionato! (non prende la dimensione??
$dimensione_massima=20971520; //dimensione massima consentita per file in byte (20MB)
$dimensione_massima_MB=$dimensione_massima/1048576; //1048576=numero di byte che formano un MB
$cartella_upload="public/"; //cartella in cui eseguire l'upload
$filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
$array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png','.zip'); //estensioni ammesse
if(!isset($_FILES['file1']) || $_FILES['file1']['size']==0){
echo '<p align ="center">Nessun file selezionato</p>';
}elseif($_FILES['file1']['size']>$dimensione_massima){
echo '<p align ="center">Dimensione massima: $dimensione_massima_MB MB</p>';
}else{
$nome_file=$_FILES['file1']['name'];
$errore="";
if($filtrare==1){
$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
if(!in_array($estensione,$array_estensioni_ammesse)){
$errore.='<p align ="center">Upload file non ammesso.
Estensioni ammesse: '.implode(", ",$array_estensioni_ammesse).'</p>';
}
}
if(!file_exists($cartella_upload)){
$errore.='<p align ="center">La cartella di destinazione non esiste</p>';
}
if($errore==""){
if(move_uploaded_file($_FILES['file1']['tmp_name'], $cartella_upload.$_FILES['file1']['name'])){
chmod($cartella_upload.$_FILES['file1']['name'],0777); //permessi per poterci sovrascrivere/scaricare
echo '<p align ="center">Upload eseguito con successo.</p>';
}else{
echo '<p align ="center">Impossibile effettuare l\'upload del file</p>';
}
}else{
echo $errore;
}
}
?>
</body>
</html>
Sapete inoltre come far apparire una progressbar o qualcosa del genere durante il caricamento?