<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<?php
if(isset($_POST['carica'])){//altrimenti come fa a sapere php che hai dato il submit?
$lista = $_FILES['files']['tmp_name'];
$bomba = $_FILES['files']['name'];
//qui il controllo del tipo di file ammessi
$ammessi=array('doc','txt','pdf','jpg','png','gif');//e altri che ti interessano
foreach($bomba as $ch => $val){
$est = pathinfo($val);
if(!in_array($est,$ammessi)){
unset($lista['files']['tmp_name'][$ch]);//elimino i file non ammessi
unset($bomba['files']['name'][$ch]);
}
}
if(!is_array($bomba){//tutti i file erano non ammessi
//dai un avviso e ritorni al form pulito o dove vuoi tu
//io metto al form pulito, con un ritorno dopo 3 secondi
echo "tutti i file eliminati<br />";
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
exit();//e rinnvio al form pulito
}
$archivia = new ZipArchive();
$nome_file = time().".zip";
$archivia->open($nome_file, ZIPARCHIVE::CREATE);
$n= 0;
foreach ($bomba as $estenzione) {
$info = pathinfo($estenzione);
$estenzion[$n] = $info['extension'];
echo $estenzion[$n],"<br />" ;
$n ++ ;
}
$n = 0;
foreach ($lista as $nome) {
$file = ($nome);
/*operazioni di upload*/
$primonumeronome = rand(1,9);
$secondonumeronome = rand(1111,9999);
$terzonumeronome = rand(1, 111);
$quartonumeronome = rand (1, 11112);
$nomefile = $primonumeronome ."". $secondonumeronome ."". $terzonumeronome ."". $quartonumeronome;
echo $file;
move_uploaded_file($file, $nomefile.".".$estenzion[$n]);
$archivia->addFile($nomefile.".".$estenzion[$n]);
//qui se vuoi eliminare i file originali, altrimenti la togli o la commenti
unset($nomefile.".".$estenzion[$n]);
$n ++;
//PROVO A ESTRAPOLARE L'ESTEZIONE
}
echo "Sono stati zippati: " . $archivia->numFiles . " file.\n";
$archivia->close();
move_uploaded_file($nome_file, time().".zip");
echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
<!-- ti conviene mettere l'avviso -->
tipo file ammessi: .doc, .txt, .pdf, .jpg, .png, .gif<br />
i file non ammessi verranno eliminati<br />
<form id="" action="<?php htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" enctype='multipart/form-data'>
<input id="file" name="files[]" type="file" multiple="multiple">
<input type="submit" name="carica" value="carica">
</form>
<!-- link per uscire -->
<?php
}
?>
</body>
</html>