看起来像添加
取消链接($文件名);
到底部似乎可以解决它:
==================================================== ====================
所以我想做的是从 2 个字符串创建一个 zip 文件,然后发送一些标题,告诉浏览器打开一个“另存为”对话框并下载 zip 文件。
它工作正常,但是当用户单击下载链接时,zip 文件的副本被复制到 php 脚本所在的 php 文件夹的根目录中,此时弹出“另存为”对话框。有人知道为什么会这样吗?我认为问题可能出在标题中。我只想在用户指定的位置保存 1 个副本。
$string1 = "Some data Some data Some data Some data Some data Some data";
$string2 = "Some data Some data Some data Some data Some data Some data";
$filename = "test.zip";
$zip = new ZipArchive();
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFromString("string1.html", $string1);
$zip->addFromString("string2.html", $string2);
$zip->close();
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$filename."\"");
header("Content-Transfer-Encoding: binary");
clearstatcache();
header("Content-Length: ".filesize($filename));
readfile($filename);
?>