我有一个页面正在尝试使用PHP下载多个文件。
如果我具有完整的文件路径,则可以这样下载单个文件:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($filepath).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
flush();
readfile($filepath);
exit;
但是,我希望能够获取特定文件夹中名称在日期范围内的所有文件。因此,我的文件名都具有相同的格式,即/folder/ddmmyyxxxx.pdf,并且我有一个表格,其中包含文件夹和两个日期。
$from_date = $_POST['from_date'];
$to_date = $_POST['to_date'];
$period = new DatePeriod(
new DateTime($from_date),
new DateInterval('P1D'),
new DateTime($to_date)
);
foreach ($period as $date){
$formatted_date = $date->format('dmy');
if(glob('../docs/'.$folder.'/'.$formatted_date.'*.*')){
// download code here
}
}
下载代码使用硬编码的文件名,但是当我尝试遍历日期时,即使找到$ formatted_date和$ folder变量给出了文件名的开头,它也找不到任何文件。
我在做什么错或者有更好的方法来实现此目的,以使它们都一起下载到一个文件夹中,而不是遍历它们并单独下载。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。