我在documentation for PHP readfile
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>
你怎么能这样做它下载多个文件说monkey.gif
和girraffe.jpg
最好没有 ZIP
文件......
答案 0 :(得分:8)
你做不到。它不是PHP限制,它是HTTP / Web浏览器的限制。 HTTP不提供通过一个请求发送多个文件的机制。
然而,您可以使用一些生成多个iframe的PHP脚本,每个iframe会启动一次下载,并以此方式伪造。
答案 1 :(得分:2)
整个方法似乎有点无意义,因为服务器上实际存在物理文件。只需使用JavaScript打开所有文件网址,如果您在.htaccess文件中正确设置了标题,那么文件就会下载。
我会做这样的事情
<script>
var files = ['filename1.jpg', 'filename2.jpg'];
for (var i = files.length - 1; i >= 0; i--) {
var a = document.createElement("a");
a.target = "_blank";
a.download = "download";
a.href = 'http://www.example.com/path_to/images/' + files[i];
a.click();
};
</script>