我正在尝试制作文件下载脚本,收集所有文件并下载一个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;
}
这段代码给了我这样的结构:
它给出了wamp的完整路径(包括路径控制器和文件)和文件,我只是想添加文件而不是目录..
有人能告诉我我错过了什么吗?
答案 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;
}