title: Display all images from outside web root folder using PHP
body: <p>I want to display all images that are stored outside my web root folder. Please help me. I am only able to display one image repeatedly. For example, if I have 5 images in my folder, only one image is displayed on my browser 5 times. Please help me on this. I've been working on this problem for over a month now. I'm a newbie. Help. Thank you. Here is the code I'm using.</p>
  
  <p>images.php </p>
  
  <pre><code>&lt;?php   
    // Get our database connector
  require("includes/copta.php");
  
  // Grab the data from our people table
  $sql = "select * from people";
  
  $result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());
  
  $imgLocation = " /uploadfile/";
  
  while ($row = mysql_fetch_array($result))
  {
      $imgName = $row["filename"]; 
      $imgPath = $imgLocation . $imgName;
  
      echo "&lt;img src=\"call_images.php?imgPath=" . $imgName . "\"  alt=\"\"&gt;&lt;br/&gt;";
      echo $row['id'] . " " . $imgName. "&lt;br /&gt;";
  
  }
  
  ?&gt;
  </code></pre>
  
  <p>call_images.php</p>
  
  <pre><code>&lt;?php
    // Get our database connector
  require("includes/copta.php");
  
  $imgLocation = '/ uploadz/';
  
  $sql = "select * from people";
  
  $result = mysql_query($sql) or 
      die ("Could not access DB: " . mysql_error());   
  
  while ($row = mysql_fetch_array($result)) {
  
      $imgName = $row["filename"]; 
      $imgPath = $imgLocation . $imgName;
  
  
      // Make sure the file exists
      if(!file_exists($imgPath) || !is_file($imgPath)) {
          header('HTTP/1.0 404 Not Found');
          die('The file does not exist');
      }
  
      // Make sure the file is an image
      $imgData = getimagesize($imgPath);
      if(!$imgData) {
          header('HTTP/1.0 403 Forbidden');
          die('The file you requested is not an image.');
      }
  
  
      // Set the appropriate content-type
      // and provide the content-length.
  
      header("Pragma: public");
      header("Expires: 0");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  
      header("Content-Type: image/jpg");
      header("Content-length: " . filesize($imgPath));
  
      // Print the image data
      readfile($imgPath);
      exit();
  
  }
  ?&gt;
  </code></pre>