【发布时间】:2013-08-26 05:29:12
【问题描述】:
各位程序员:
讨厌问这个问题,事实上,我相信正确回答了两次:
所以问题是:解压下载的'file.zip'时,解压后,它包含路径中的所有文件夹,即使我在addFile函数中指定了本地文件。我希望 zip 文件不包含任何子文件夹,只包含文件。
$zipname = str_replace(' ', '_', $obj['Name']) . '.zip';
$zip = new ZipArchive();
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
// $file looks like this: webroot/uploadify/files/file.jpg
$zip->addFile($file, pathinfo($file, PATHINFO_BASENAME));
}
$zip->close();
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=" . $zipname);
header("Pragma: no-cache");
header("Expires: 0");
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
谁能看出这段代码有什么问题?
附加信息:
我,ofc,使用相对于 webroot 的路径,但在提取文件夹之后的文件夹层次结构: 解压到文件 -> 'my_file.zip' 是 C->xampp->htdocs->my_cakephp_web_app->app->webroot->files 这不是我想要实现的:)
PHP 5.4.4
Windows XP、XAMPP
编辑
尝试使用http://www.phpconcept.net/pclzip/ 库并遇到同样的问题。 同样在我的家用 PC (win7) 上,此代码运行良好。
这就引出了一个问题:有什么我不知道的设置我应该满足的吗?
【问题讨论】:
标签: php ziparchive