【发布时间】:2015-02-04 12:32:10
【问题描述】:
对于自动下载页面,我希望能够快速将我想共享的文件添加到目录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);
}
【问题讨论】: