Fellow koderów:ZipArchive PHP dodając tylko pliki bez katalogów z całej ścieżki
nienawidzę to pytanie, jak to było, wierzę poprawnie odpowiedział dwa razy:
Więc pr oblem to: po rozpakowaniu pobranego pliku "file.zip", po rozpakowaniu zawiera wszystkie foldery ze ścieżki, nawet trudne jest określenie lokalnego pliku w funkcji addFile. Chciałbym, żeby plik zip nie zawierał podfolderów, tylko pliki.
$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);
Czy ktoś może zobaczyć, jaki jest problem z tym kodem?
Dodatkowe informacje:
I ofc, stosowanie ścieżki w stosunku do webroot, ale hierarchia folder wydobytego katalogu po: ekstraktu pliku -> 'my_file.zip' jest C-> xampp -> htdocs-> my_cakephp_web_app-> app-> webroot-> pliki który nie jest dokładnie to, co chciałem osiągnąć :)
PHP 5.4.4
Windows XP, XAMPP
EDYCJA
Próbowano użyć biblioteki http://www.phpconcept.net/pclzip/ i wystąpił ten sam problem. Również na moim domowym komputerze (win7) ten kod działał dobrze.
Pojawia się pytanie: Czy są jakieś ustawienia, które powinienem spełnić, o których nie jestem świadomy?
nie pomogło, nadal zachowuje się tak samo .. –
Jeśli masz czas, spójrz na moją odpowiedź i daj mi znać, dlaczego to działa :) –