Salve ragazzi,
ho questo script per decomprimere un file zip caricato da un form:
Codice PHP:
$filename = $_FILES['File']['name'];
$source = $_FILES['File']['tmp_name'];
$type = $_FILES['File']['type'];
$file_zip=zip_open($source);
$nome_file = explode('.', $filename);
$target = $nome_file[0] . '-' . time() . '/';
chdir('archivio');
mkdir($target);
chdir($target);
while ($file = zip_read($file_zip)) {
zip_entry_open($file_zip, $file, "r");
$fil_e=zip_entry_read($file, zip_entry_filesize($file));
$handler=fopen(zip_entry_name($file), 'wb');
if(!is_dir(zip_entry_name($file))){
mkdir(zip_entry_name($file));
}
fwrite($handler, $fil_e);
fclose($handler);
zip_entry_close($file);
}
zip_close($file_zip);
chdir('../../');
Pur non essendo ancora ottimizzato fa il suo dovere, il problema è se all'interno dell'archivio vi è una directory e non un file. In poche parole crea un file senza estensione e basta.
Sapete come posso raggirare questo problema? Ho fatto qualche prova con la funzione id_dir() ma non ne sono uscito fuori.
Grazie