programmatori Compagni:ZipArchive PHP aggiungendo solo i file senza directory dall'intero percorso
odio di fare questa domanda, come è stato, I belive risposto correttamente due volte:
Così il pr oblem è: quando si decomprime il file scaricato "file.zip", dopo aver decompresso, contiene tutte le cartelle del percorso, anche se ho specificato il file locale nella funzione addFile. Mi piacerebbe che il file zip non contenga alcuna sottocartella, solo file.
$zipname = str_replace(' ', '_', $obj['Name']) . '.zip';
$zip = new ZipArchive();
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
// $file looks like this: webroot/uploadify/files/file.jpg
$zip->addFile($file, pathinfo($file, PATHINFO_BASENAME));
}
$zip->close();
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=" . $zipname);
header("Pragma: no-cache");
header("Expires: 0");
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
Qualcuno può vedere qual è il problema con questo codice?
Ulteriori informazioni:
I, OFC, utilizzare i percorsi relativi alla Webroot, ma la gerarchia di cartelle nella cartella estratta dopo: estratto su File -> 'my_file.zip' è C-> xampp -> htdocs-> my_cakephp_web_app-> app->> webroot- file che non è esattamente quello che volevo ottenere :)
PHP 5.4.4
Windows XP, XAMPP
EDIT
Provato utilizzando la libreria http://www.phpconcept.net/pclzip/ e ha avuto lo stesso problema. Anche sul mio PC di casa (win7) questo codice ha funzionato bene.
Questo fa sorgere una domanda: Ci sono delle impostazioni che dovrei incontrare di cui non sono a conoscenza?
non ha aiutato, si comporta ancora allo stesso modo .. –
Se hai tempo, dai un'occhiata alla mia risposta per favore e fammi sapere perché funziona :) –