简体   繁体   中英

Displaying images from mysql database - php

I am currently having problems with displaying image from mysql database. I am able to upload an image to mysql database, however if i want to retrieve it from the database, it is displayed in Gibberish text.

Here is upload.php

  if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {

  $filename = mysqli_real_escape_string($mysqli,$_FILES['image']['name']);
  $tmpName = $_FILES['image']['tmp_name'];
  $fp = fopen($tmpName, 'r');
  $data = fread($fp, filesize($tmpName));
  $data = addslashes($data);
  fclose($fp);

  $query = "INSERT INTO `TABLES` (`image`)
           VALUES( NULL,'$data')";
  $result = $mysqli->query($query);
}

View.php

 $mysqlquery = "SELECT * FROM TABLE";
 $results = $mysqli->query($mysqlquery);

 if($results->num_rows > 0){
 while ($row = $results ->fetch_assoc()){
 echo '<div align = "center">';
 echo "<b>".$row["image"]. "<br></b>";
 header("Content-type: image/jpeg");
    }
}

试试这个,别忘了在源之前给出图像路径

echo "<img src='your image location directory/". $row['image'] .'" >";

Oooooh... I just wish I had the answer to this one...

Some thoughts, though.

First, from personal experience I urge against storing images in the database. For one thing, your database backups will quickly become ridiculous. A more common, and better, approach is to store the images in the file system and store only the location (eg /img/pic03.jpg ) of the image in the database.

Next, I see you are modifying the received binary data:

$tmpName = $_FILES['image']['tmp_name'];
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);

Perhaps you know something that I don't (it's not difficult), but generally, if you gerfingerpoke with binary image data you get ... um... gibberish . Try disabling those lines and see what happens.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM