📜  使用 php 代码示例从 mysql 下载图像

📅  最后修改于: 2022-03-11 14:54:07.840000             🧑  作者: Mango

代码示例1
//You can save this to test.php and call it with test.php?id=1 for example
dbConnection();

//Get ID from GET (better POST but for easy debug...)
if (isset($_GET["id"])) {
    $id=(int)$_GET["id"];
} else {
  echo "Wrong input";
  exit;
}

//Prepare PDO SQL
$q = $pdo->prepare("SELECT * FROM `table_with_image` WHERE `id`=:p_id");

//Add some data
$q->bindparam(":p_id", $id); //Filter user input, no sanitize necessary here

//Do the db query
$q->execute();

//If something found (always only 1 record!)
if ($q->rowCount() == 1) {
  
      //Get the content of the record into $row
    $row = $q->fetch(PDO::FETCH_ASSOC); //Everything with id=$id should be in record buffer
      
      //This is the image blob mysql item  
      $image = $row['image'];
      
      //Clean disconnect
      $database->disconnect();
    
      //Now start the header, caution: do not output any other header or other data!
      header("Content-type: image/jpeg");
    header('Content-Disposition: attachment; filename="table_with_image_image'.$id.'.jpg"');
    header("Content-Transfer-Encoding: binary"); 
    header('Expires: 0');
    header('Pragma: no-cache');
    header("Content-Length: ".strlen($image));
    //Output plain image from db
    echo $image;
} else {
  //Nothing found with that id, output some error
  $database->disconnect();
  echo "No image found";
}

//No output and exceution further this point
exit();