PHP zip函数生成zip,但下载
我有一个名为PHP zip函数生成zip,但下载,php,download,makefile,zip,Php,Download,Makefile,Zip,我有一个名为zip的函数,可以从文件夹中生成一个zip文件。它工作得很好,只不过它会在完成压缩后下载。我希望用户能够按需下载和备份。但它们也是在制作时下载的。这是我的PHP代码: function zip($source, $destination){ if (extension_loaded('zip') === true){ if (file_exists($source) === true){ $zip = new ZipArchiv
zip
的函数,可以从文件夹中生成一个zip文件。它工作得很好,只不过它会在完成压缩后下载。我希望用户能够按需下载和备份。但它们也是在制作时下载的。这是我的PHP代码:
function zip($source, $destination){
if (extension_loaded('zip') === true){
if (file_exists($source) === true){
$zip = new ZipArchive();
if ($zip->open($destination, ZIPARCHIVE::CREATE) === true ){
$source = realpath($source);
if (is_dir($source) === true){
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file){
$file = realpath($file);
if (is_dir($file) === true){
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
}
else if (is_file($file) === true){
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
}
else if (is_file($source) === true) {
$zip->addFromString(basename($source), file_get_contents($source));
}
}
return $zip->close();
}
}
return false;
}
zip("../data", "backup.zip");
有人知道如何解决我的问题吗?提前谢谢
注:
纯文本版本是:我有一个类似的问题,但我将zip文件制作得不同,所以我不知道这是否适用。我的问题是使用Internet Explorer,当用户单击链接时,我会创建zip文件,在IE中,当链接完成时,它会自动下载,但其他浏览器可以正常工作
我会在我的链接中检查$_服务器[“HTTP\u USER\u AGENT”],我必须在其中添加“target=\u blank”以阻止IE自动下载。什么时候会发生这种情况?我在你展示的代码中没有看到任何东西会导致zip文件被传递到我不知道的浏览器。我甚至在调用
zip
后添加了一个位置头。发送该位置头后,您会做什么?因为如果没有退出
,那么脚本的其余部分仍将被执行。是的,在位置头之后有一个退出
。location标题刚好出现在我正在开发的工具的主页面上。这不是问题,我修复了真实的标题,但我认为我至少应该给出accept。你是唯一一个回答的人。=}