不希望ZipArchive的目录结构

时间:2013-05-09 06:05:25

标签: php zip ziparchive

我正在尝试制作文件下载脚本,收集所有文件并下载一个zip文件,该文件集合的文件不是所有目录结构..

我的文件位于download / folder1 / folder1 / filename.extension

这是我的PHP代码:

if( !extension_loaded('zip') ){
    echo "<script>alert('Error: Please contact to the Server Administrator!');</script>";
    exit;
}

$zip = new ZipArchive;
if( $zip->open($zipname, ZipArchive::OVERWRITE) === TRUE ){
    foreach( $files as $file ){
        $zip->addFile( BASE_PATH.$file_path.'/'.$file, $file );
    }
    $zip->close();
} else {
    echo "<script>alert('Error: problem to create zip file!');</script>";
    exit;
}

这段代码给了我这样的结构:

enter image description here

它给出了wamp的完整路径(包括路径控制器和文件)和文件,我只是想添加文件而不是目录..

有人能告诉我我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

每次下载链接都附带唯一下载密钥时,我只需添加名为download.zip文件的unique_key及其工作...

// $db_secret_key Random Unique Number
$zipname = $db_secret_key."_download.zip";

if( !extension_loaded('zip') ){
     echo "<script>alert('Error: Please contact to the Server Administrator!');</script>";
     exit;
}


$zip = new ZipArchive;
if( $zip->open($zipname, ZipArchive::CREATE) === TRUE ){
     foreach( $files as $file ){
           $zip->addFile( BASE_PATH.$file_path.'/'.$file, $file );
     }
     $zip->close();

     // Force Download
     header("Content-Type: application/zip");
     header("Content-disposition: attachment; filename=$zipname");
     header("Content-Length: ".filesize($zipname)."");
     header("Pragma: no-cache");
     header("Expires: 0");
     readfile($zipname);
     exit;
} else {
     echo "<script>alert('Error: problem to create zip file!');</script>";
     exit;
}