如何在不使用目录的情况下显示数据库中的图像

时间:2016-09-04 01:53:28

标签: php mysql sql

我查了一些来自youtube的教程,就像其中的5个,但由于某些原因它们都不能为我工作,我只是得到了破碎的图像图标。

我尝试使用文件夹来获取img src="images/$row['picture'];

等图片

但我想要的是直接从数据库中显示它。

如果可能请给我一个代码,所以我会知道这是我的浏览器还是我的编码。

我复制了这些代码,但它甚至没有工作

https://vikasmahajan.wordpress.com/2010/07/07/inserting-and-displaying-images-in-mysql-using-php/

它不显示图像:

1 个答案:

答案 0 :(得分:1)

generally discouraged to approach it that way。 &lt ;-(很高兴知道)

......它仍然可以完成,你的用例可能会要求它......

使用full credit to @Andomar

首先创建一个MySQL表来存储图像,例如:

create table testblob (
    image_id        tinyint(3)  not null default '0',
    image_type      varchar(25) not null default '',
    image           blob        not null,
    image_size      varchar(25) not null default '',
    image_ctgy      varchar(25) not null default '',
    image_name      varchar(50) not null default ''
);

然后您可以将图像写入数据库,如:

$imgData = file_get_contents($filename);
$size = getimagesize($filename);
mysql_connect("localhost", "$username", "$password");
mysql_select_db ("$dbname");
$sql = sprintf("INSERT INTO testblob
    (image_type, image, image_size, image_name)
    VALUES
    ('%s', '%s', '%d', '%s')",
    mysql_real_escape_string($size['mime']),
    mysql_real_escape_string($imgData),
    $size[3],
    mysql_real_escape_string($_FILES['userfile']['name'])
    );
mysql_query($sql);

您可以使用以下网址在网页中显示数据库中的图像:

$link = mysql_connect("localhost", "username", "password");
mysql_select_db("testblob");
$sql = "SELECT image FROM testblob WHERE image_id=0";
$result = mysql_query("$sql");
header("Content-type: image/jpeg");
echo mysql_result($result, 0);
mysql_close($link);