【发布时间】:2013-09-25 11:49:33
【问题描述】:
我有一些 PHP 代码用于尝试压缩文件夹。该文件夹中有两个子文件夹和几个单独的文件。
这里是代码:-
<?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 = "测试文件夹" dstin = "TestFolder.zip"。
发生的事情是我得到一个 zip 文件。但是,子文件夹被创建为文件。
我从这个论坛中搜索到有关如何压缩文件夹的上述代码,但我看不到有关子文件夹未正确压缩的任何内容。
非常感谢任何帮助。
谢谢
马丁
【问题讨论】:
-
从外观上看,它不会检查
$src下的任何内容是否是文件夹/目录并采取相应措施。也许创建一个可能的递归函数并检查$file是否是一个目录,如果是,则将其传递给函数以读取它。递归将是我的建议,因此您也可以将$src传递给该函数。我无法用任何代码创建答案,因为您没有说明您使用的是什么库,所以我无法对其进行测试。