【发布时间】:2019-09-19 11:23:30
【问题描述】:
我正在尝试从我的应用程序 (Laravel 5.8) 上的文件夹中下载一个 zip,它正在工作,但它们会跳过所有空文件夹,我需要它们在 zip 中。
我已经尝试过来自 composer 的 ZipArchive (php) 和 chumper/zipper。
知道我该怎么做吗?
这是一个 Linux 服务器,运行 MySQL 5、PHP 7.2 和 Apache2。
$files = glob($folder_path);
\Zipper::make($folder_path.'/'.$folder_main_name.'.zip')->add($files)->close();
这个库只接受 glob,但如果你有任何可行的解决方案,我可以很容易地放弃它。
【问题讨论】:
-
您是否尝试将点文件(如“.keep”或其他)放入空文件夹中以查看会发生什么?
-
您是否尝试过不使用 lib 而只是从 Linux 调用 zip 命令?它比人们试图在各种库中重新发明的方式更快、功能更丰富。如果您没有构建应该移植到 Windows 的东西,那么这可以解决您的所有问题。如果你愿意走这条路,请告诉我。
-
是的,我添加了一个名为“Icon_”的文件并且工作正常。但是我需要空文件夹,因为它将上传到另一台服务器上,并且它必须是空的。
-
@asiby 我还没有尝试过。我现在就去做。泰!
-
是的。对于操作系统可以做的许多事情,我宁愿让它去做。例如,根据复杂的标准查找一些文件或文件夹。我需要归档所有 git repos,然后我做
exec("find %baseDir -type d -name .git", $output, $returnCode)。我使用strtr()将%baseDir替换为我正在扫描的目录。对于压缩东西,我会使用tar并使用exec("tar czf compressed.tar.gz folder-to-compress", $output, $returnCode)