2

我正在通过 Apache 服务器显示图像。当我单击每个图像时,它应该打开download.php?fiel=file_name.jpg并将图像下载到系统。

这是图像显示的代码

  <?php
 $files = glob("Image/"."*.*");
 for ($i=0; $i<count($files); $i++)
{
$num = $files[$i];
echo $num."<br>";
echo '<img src="'.$num.'" alt="Here should be image" width="256" height="192" >'."<br/>";
}
?>

我使用以下代码下载图像(即download.php 文件)。

 <?php
 $file = $_GET['file'];
  header("Content-type: image");
 header("Content-disposition: attachment; filename= ".$file."");
 readfile($file);
 ?> 

如何做到这一点?

4

3 回答 3

1

你的意思是这样的?:

<?php
$files = glob("Image/"."*.*");
$countFiles = count($files); //Don't do calculations in your loop, this is really slow

for ($i=0; $i<$countFiles; $i++)
{
    $num = $files[$i];

    echo '<a href="download.php?file=' . $files[$i] . '"><img src="'.$num.'" alt="Here should be image" width="256" height="192" ></a><br/>';
}
?>
于 2012-12-06T08:22:28.867 回答
0
foreach (glob("Image/*.*") as $file) {
  echo "<a href='download.php?file=$file'>$file<br>\n";
  echo "<img src='$file' alt='Here should be image' width='256' height='192'/><br>\n</a>";
}
于 2012-12-06T08:22:19.247 回答
0

如果您想将所有图像下载到一个文件夹中,我建议您使用 zip 或类似工具将图像存档。您可以在 php 中即时压缩文件。要遍历目录中的所有文件,请查看RecursiveDirectoryIterator

foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $file) {
    var_dump($file);
}
于 2012-12-06T08:29:13.717 回答