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

すべての画像を1つのフォルダにダウンロードする場合は、zipなどのツールを使用して画像をアーカイブすることをお勧めします。あなたはその場でphpでファイルを圧縮することができます。ディレクトリ内のすべてのファイルを反復処理するには、RecursiveDirectoryIteratorを確認してください。

foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $file) {
    var_dump($file);
}
于 2012-12-06T08:29:13.717 に答える
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 に答える