目前我使用此代码下载zip文件:
<?php
$weborder = $_POST['weborder'];
$printlocation = $_POST['print'];
$file = 'z:\Backup\\'.$printlocation.'\\'.$weborder.'.zip';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
else
{
echo ":(";
}
?>
zip文件包含4个文件。我现在遇到的问题是不应该下载3个文件。我想知道是否有一种简单的方法可以选择不下载哪些文件。
答案 0 :(得分:1)
不幸的是,没有办法选择性地下载zip。 你应该重新包装你的zip存档包含你想要下载的文件。
以下是一些相关问题,只是为了不在这里复制它们:
您需要做的是提取您要提供的文件以供下载。 你可以通过使用“selective”解压缩来实现这个目的......
$zip->extractTo('/some/dir/', ['number_one.file', 'some_other.file']); // or single file in your case
...然后打包它们,并为新创建的zip存档提供您想要的文件。
有关如何执行此操作的详细信息,请参阅上面的相关链接。
UPD:我要提到在脚本中直接使用用户输入不是一个好习惯。这是潜在的安全漏洞。