繁体   English   中英

PHP ZipArchive下载工作正常,但未向zip添加文件

[英]PHP ZipArchive download working but not adding files to zip

我知道关于ZipArchive及其工作方式存在很多问题,但是在完成所有这些工作之后,我仍然无法使我的程序正常工作。

我不知道我要去哪里错,因为我有死方法,而且都没有被激活。

$path = "/export/scripts/CLOUD/logs/web/Private_Testbox/Jan_28_2013_16_20_44_atvts78_rollout_config/";

$fileName = explode('/', $path);
$zipname = $fileName[count($fileName) - 2];

$zip = new ZipArchive;
$handle = opendir($path);

//Check whether Zip can be opened
if ($zip->open($zipname, ZIPARCHIVE::CREATE) !== TRUE) {
    die("Could not open archive");
}

//Add all files to an array
while ($file = readdir($handle)) 
{
    $zip->addFile($path, $file);
}

closedir($handle);
$zip->close();

//Send zip folder 
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=' . $zipname . '.zip');
readfile($zip);

该文件下载zip文件夹,但其中没有任何内容。

预先感谢您的帮助。

您在->addFile()调用中忘记了die() ,这意味着您假设实际上已添加了文件。

readfile()不会返回目录中文件的完整路径,而不会返回实际的“本地”文件名,这意味着您要添加脚本的当前工作目录中不存在的文件。 尝试:

$zip->addFile($file, $path . $file);
              ^^^^^^^^^^^^^^^^^^^^^

代替。 就目前而言,您的代码使用$path作为要嵌入zip的文件名,并且目录不能用作文件名。 并且没有$path . $file $path . $file ,addFile找错了位置,例如,它等效于getcwd() . $file getcwd() . $file代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM