php的数据库图片 php用img显示数据库中图片

php 数据库图片存储问题?

存储的是相对路径,可以到网站服务器上查看,应该有upload文件夹,里面就是存储的图片,这样写的好处是节省了数据库存储空间,转移的时候可以直接将整个服务器的图片打包转移。

创新互联专业为企业提供融安网站建设、融安做网站、融安网站设计、融安网站制作等企业网站建设、网页设计与制作、融安企业网站模板建站服务,10余年融安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

访问的时候,前面可以拼接域名和指定的路径,这些后台可以轻松获取到,然后拼接上服务器的路径,我们就可以直接在网页上访问到图片了。

这是很常见的图片数据库保存方式,和直接把图片的二进制存入数据库,这样的方式便于检索,占用空间小。当然,目前主流都采用oss来单独存储文件了,就是有专门的文件服务器,这个时候,一般存储的是完整的图片路径。

怎样用php实现上传图片到数据库

php实现上传图片保存到数据库的方法。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)

如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。

mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。

TinyBlob       最大 255B

Blob              最大 65K

MediumBlob  最大 16M

LongBlob      最大 4G

数据表photo,用于保存图片数据,结构如下:

CREATE TABLE `photo` (  

`id` int(10) unsigned NOT NULL auto_increment,  

`type` varchar(100) NOT NULL,  

`binarydata` mediumblob NOT NULL,  

PRIMARY KEY  (`id`)  

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php代码如下:

?php  

// 连接数据库  

$conn=@mysql_connect("localhost","root","")  or die(mysql_error());  

@mysql_select_db('demo',$conn) or die(mysql_error()); // 判断action  

$action = isset($_REQUEST['action'])? $_REQUEST['action'] : ''; 

// 上传图片  

if($action=='add'){  

$image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));  

$type = $_FILES['photo']['type'];  

$sqlstr = "insert into photo(type,binarydata) values('".$type."','".$image."')";  

@mysql_query($sqlstr) or die(mysql_error());  

header('location:upload_image_todb.php');  

exit();  

// 显示图片  

}elseif($action=='show'){  

$id = isset($_GET['id'])? intval($_GET['id']) : 0;  

$sqlstr = "select * from photo where id=$id";  

$query = mysql_query($sqlstr) or die(mysql_error());  

$thread = mysql_fetch_assoc($query);  

if($thread){  

header('content-type:'.$thread['type']);  

echo $thread['binarydata'];  

exit();  

}  

}else{  

// 显示图片列表及上传表单  

?  

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""  

html  

head  

meta http-equiv="content-type" content="text/html; charset=utf-8"  

title upload image to db demo /title  

/head  

body  

form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data"  

p图片:input type="file" name="photo"/p  

pinput type="hidden" name="action" value="add"input type="submit" name="b1" value="提交"/p  

/form  

?php  

$sqlstr = "select * from photo order by id desc";  

$query = mysql_query($sqlstr) or die(mysql_error());  

$result = array();  

while($thread=mysql_fetch_assoc($query)){  

$result[] = $thread;  

}  

foreach($result as $val){  

echo 'pimg 

src="upload_image_todb.php?action=showid='.$val['id'].'t='.time().'"

width="150"/p';  

}  

?  

/body  

/html  

?php  

}  

?

程序运行截图和数据库截图:

php中如何从数据库中读取图片?

比较普遍的方法是通过代码实现。

1、源代码:

// 把图片上传到数据库

// 从数据库中读取图片;

// 定义文件临时目录 是必要的

define('UPLOAD_PATH',dirname(__FILE__)."/uploads/");

if($_POST["submit"]){

if($_FILES['photo']['size']0 $_FILES['photo']['name'])

{

$photo_type=$_FILES['photo']['type'];

if(!($_FILES['photo']['type']=='image/gif' || $_FILES['photo']['type']=='image/pjpeg'))

{

echo  "商品图片只能为GIF或者JPGE格式。";

}else{

list($tmp,$file_ext) = explode("/",$_FILES['photo']['type']);

$photo_name = mt_rand()."_".time().".".$file_ext;

if(!move_uploaded_file($_FILES['photo']['tmp_name'], UPLOAD_PATH.$photo_name))

{

echo "商品图片保存失败。";

echo "a href=javascript:window.history.go(-1)返回/a";

exit(); // 下面的操作将不会进行;

}

}

}

$sql="INSERT INTO `photo`(id,data,type)VALUES('','$photo_name','$photo_type')";

$query=mysql_query($sql);

if($query){

echo "图片插入成功";

}else{

echo "失败的操作";

echo "a href=javascript:window.history.go(-1)返回/a";

exit();

}

$sql_show_pic="SELECT * FROM `photo` ";

$query_show_pic=mysql_query($sql_show_pic);

while($result_pic_show=mysql_fetch_array($query_show_pic)){

//header("Content-Type:" .$result_pic_show["type"]);//这个不用啦

// uploads 必须写的

echo "img src=uploads/".$result_pic_show['data']."br";

}

}

?

form action="" method="post" enctype="multipart/form-data"

p选择上传的图片:/p

input type="file" name="photo" size="50" br/br

input type="submit" name="submit" value="上传"/

/form

2、需要使用的数据类型:

(1)一般来讲都是把图片保存到服务器下,然后根据路径读出的,但是有时候出于安全及版权什么的考虑,会把图片保存到mysql的数据库中,然后再读出来,这样的图片点击右键属性,是看不到图片地址的。下面逍遥一生就介绍下如何用php把图片存储到mysql中及如何读出。

(2)MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。

MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可变数量的数据。BLOB具有四种类型,分别是TINYBLOB,BLOB, MEDIUMBLOB 与LONGBLOB,区别在于各自所能够保存的最大数据长度区别。

3、编写上传脚本 

接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为Picture。

php中如何调用数据库中的图片并且显示到页面

php是采用二进制形式存储图片及读取显示的,首先通过代码创建数据表,然后上传图片服务器再通过浏览器显示,具体编程代码举例:

1、首先需要创建数据表,具体代码如下图所示。

2、然后写上传图片到服务器的页面 upimage.html用来将图片上传数据库,如下图所示代码。

3、处理图片上传的php upimage.php文件,如下图所示图片已储存到数据库。

4、显示图片的php getimage.php文件,为了看一下效果提前把ID写入代码。

5、预览网站从数据库中提取了图片,并显示到页面上。


本文名称:php的数据库图片 php用img显示数据库中图片
路径分享:http://myzitong.com/article/ddjdeii.html