我正在创建某种文件共享应用程序。在此应用程序中,您应该能够上传和下载文件并构建这些文件。
我选择不继续操纵文件系统。但是我根据时间戳将文件上传到文件夹中,并将重要信息存储在数据库中并在数据库中构建它们。所以没有真正的子文件夹,只有数据库中的关系来将这些文件构建到文件夹中。
不,我想让用户通过压缩来下载文件夹(包括子文件夹)。但是我想在将要下载的 zip-archive 中重新创建这个文件夹结构(用户在前端看到的)。我已经设法使用 PHP 的 ZipArchive 类来做到这一点:http: //php.net/manual/en/class.ziparchive.php 但是这有一个大问题。压缩大文件时会占用大量内存和 CPU。而且系统必须能够处理大文件(> 1GB)我不可能允许PHP使用> 1GB的内存?!
现在我发现了一个 Stackoverflow 问题,可以在 php 中使用更少的内存压缩大文件: https ://stackoverflow.com/a/4357904/383731
这似乎使用了 Unix Zip 命令,但是是否可以在这些 zip 中创建文件夹而文件系统中不存在它们?