我有两个文件;
image.php
<?php
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
$result = mysql_query("SELECT *FROM products") or die(mysql_error());
//Your code to call database for image id (from _GET['id']), for instance:
$image_id = $_GET['pid'];
$data = mysql_query("Select img where pid = $image_id");
while($data = mysql_fetch_assoc($result)){
$image=$data['img'];
header("content-type: image/png");
echo $image;
}
?>
和ay.html查看图片;
<img src="image.php?pid=IMAGE_ID" />
经过我试过的很多例子,以及本网站和其他地方的每个帖子,我仍然收到此错误;
The image"http....../image.php?pid=IMAGE_ID" cannot be displayed because it contains errors.
任何帮助将不胜感激。 顺便说一句,MySql变量是一个名为img的LONGBLOB 我想知道为什么MySQL变量没有简单的IMG类型!
答案 0 :(得分:0)
您应该发布存储图像的方式,以确切了解代码的错误,但是因为错误表示图像存在某种错误,因此无法正确存储到数据库中。
一般来说,从图像到二进制数据和反向的步骤如下:
图像到二进制转换:
<? php
$image_data=file_get_contents('test.jpg');
$encoded_image=base64_encode($image_data);
echo $encoded_image;
?>
二进制到图像转换:
<?php
$image_data = file_get_contents('test.jpg');
$encoded_image = base64_encode($image_data);
$decoded_image = base64_decode($encoded_image);
echo $decoded_image;
?>
您完全缺少的是base_64编码,以防止符号被错误地转换。