对于自动下载页面,我希望能够快速将我想要共享的文件添加到目录files
,以便创建该文件夹中所有文件的ZIP。
该目录如下所示:
index.php
|- files
|- file1.jpg
|- file2.jpg
|- file3.jpg
|- etc ...
现在,我在index.php
中有以下代码:
$dir = "files";
$dh = opendir($dir);
$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);
while (false !== ($filename = readdir($dh))) {
if ($filename !== "." && $filename !== "..") {
$files[] = $filename;
}
}
foreach ($files as $file) {
$zip->addFile($file,basename($file));
}
$zip->close();
当我var_dump($files)
时,我会收到“file1.jpg”等文件列表,但是当我var_dump($zip)
时,我得到了:
object(ZipArchive)#1 (5) { ["status"]=> int(0) ["statusSys"]=> int(0) ["numFiles"]=> int(0) ["filename"]=> string(0) "" ["comment"]=> string(0) "" }
任何人都可以帮我解决这个问题吗? 所有文件都有644访问和目录755,我认为这可能不是问题。
谢谢
更新:我发现将文件添加到ZIP的问题,但现在我无法弄清楚如何下载创建的zip,因为它在尝试访问创建的zip时获得404。更新了一段代码:
foreach ($files as $file) {
$zip->addFile($dir . '/' . $file);
}