У меня есть код PHP, который я использую, чтобы попробовать и застегнуть папку. В папке есть две подпапки и несколько отдельных файлов.PHP ZIP создание вложенных папок в виде файлов
Вот код: -
<?php
$src = $_POST['srcin'];
$dst = $_POST['dstin'];
$zip = new ZipArchive;
$zip->open($dst, ZipArchive::CREATE);
if (false !== ($dir = opendir($src)))
{
while (false !== ($file = readdir($dir)))
{
if ($file != '.' && $file != '..')
{
$ans = DIRECTORY_SEPARATOR;
$zip->addFile($src.DIRECTORY_SEPARATOR.$file);
}
}
}
else
{
die('Can\'t read dir');
}
$zip->close();
echo json_encode('Folder Compressed');
?>
Входные значения являются: -
srcin = "TestFolder" dstin = "TestFolder.zip".
Что происходит, так это то, что я получаю zip-файл. Однако подпапки создаются в виде файлов.
Я получил приведенный выше код от поиска в этом форуме о том, как ZIP-папка, но я не вижу ничего упомянутого о том, что вложенные папки не зашифрованы должным образом.
Любая помощь очень ценится.
Благодаря
Martin
Судя по всему, он не проверяет, если что-нибудь под '$ src' папка/и действует соответствующим образом. Возможно, создайте возможную рекурсивную функцию и проверьте, является ли '$ file' каталогом, если да, передайте ее функции, чтобы прочитать ее. Рекурсивным было бы мое предложение, поэтому вы можете передать '$ src' этой функции. Я не могу создать ответ с любым кодом, так как вы не указываете, какую библиотеку вы используете, поэтому я не смог бы ее протестировать. – Jon