网站建设资讯

NEWS

网站建设资讯

php数据库怎样连接图片 php商品图片连接数据库

php如何从数据库中调用图片

以下是大致的原理 你看看

创新互联建站成都网站建设按需网站制作,是成都网站推广公司,为成都自上料搅拌车提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站改版热线:028-86922220

在我们设计和制作网站的过程中,有时把图片保存到数据库中要比存成文件的形式更加方便。PHP和MySQL这对黄金组合可以很容易的实现上述功能。在本文中,我们将会向读者介绍如何把图片保存到MySQL数据库中以及如何将数据库中的图片显示出来。

设置数据库

我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。

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

在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。

CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );

编写上传脚本

关于如何实现文件的上传,我们在这里就不再介绍了,感兴趣的读者可以参见“网页陶吧”内的相关文章。现在,我们主要来看一下如何接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为Picture。

?

If($Picture != "none") { $PSize = filesize($Picture);

$mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize));

mysql_connect($host,$username,$password) or die("Unable to connect to SQL server");

@mysql_select_db($db) or die("Unable to select database");

mysql_query("INSERT INTO Images (Image) VALUES '($mysqlPicture')")

or die("Can't Perform Query");

}

else

{ echo"You did not upload any picture"; }

?

这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。

下面,我们简单说明一下上述脚本程序。首先,我们通过“If($Picture != "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。

显示图片

在知道了如何将图片存入数据库之后,我们就需要考虑怎样才能从数据库中取出图片并在HTML页面中显示出来。这个过程要稍微复杂一些,下面我们就来介绍一下实现过程。

因为PHP显示图片需要发送相应的标头,所以我们就会面临这样一个问题,那就是一次只能显示一副图片,因为我们无法在发出标头之后再发送其它的标头。

为了有效的解决这一问题,我们编写了两个文件。其中,第一个文件作为HTML页面的模板,定位图片的显示位置。第二个文件则被用来从数据库中实际输出文件流,作为IMG标签的SRC属性。

第一个文件的简单形式可以如下:

HTML

BODY

?

mysql_connect($host,$username,$password)

or die("Unable to connect to SQL server");

@mysql_select_db($db) or die("Unable to select database");

$result=mysql_query("SELECT * FROM Images") or die("Can't Perform Query");

While($row=mysql_fetch_object($result)) {

echo "IMG SRC=\"Second.php3? PicNum=$row-PicNum\"";

}

?

/BODY

/HTML

当HTML页面被浏览时,每显示一副图片就会调用一次Second.php3文件。当第二个文件被调用时会传入相应的Picture ID,我们可以借此从数据库中取回对应的图片并显示。

Second.php3文件如下:

?

$result=mysql_query("SELECT * FROM Images WHERE PicNum=$PicNum")

or die("Can't perform Query"); $row=mysql_fetch_object($result);

Header( "Content-type: image/gif"); echo $row-Image;

?

怎样用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中如何调用数据库中的图片并且显示到页面

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

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

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

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

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

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

如何使用PHP向数据库中插入图片,,并且使得图片可以显示在页面上??

一般不向数据库插入图片 而是插入图片的src 通过src找到图片然后显示。

?php

session_start();

//array数组中放图片的格式

$uptypes = array("image/jpg","image/jpeg","image/png","image/pjpeg","image/gif","image/bmp","image/x-png");

$files =$_FILES["uppic"];

if($files["size"]2097152){ //图片大小判断

echo "上传图片不能大于2M";

echo "meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'";

exit;

}

$ftype =$files["type"];

if(!in_array($ftype,$uptypes)){ //图片格式判断

echo "上传的图片文件格式不正确";

echo "meta http-equiv='REFRESH' CONTENT='1;URL=pic.php'";

}

$fname = $files["tmp_name"]; //在服务器临时存储名称

$image_info = getimagesize($fname);

$name = $files["name"];

$str_name = pathinfo($name); //以数组的形式返回文件路劲的信息

$extname = strtolower($str_name["extension"]); //把字符串改为小写 extensiorn扩展名

$upload_dir = "upload/"; //upload文件夹

$file_name = date("YmdHis").rand(1000,9999).".".$extname;

$str_file = $upload_dir.$file_name; //文件目录

//存入数据库

$con=mysql_connect("localhost","root","");

if(!$con){

die(("数据库连接失败").mysql_error());

}

mysql_select_db("mywork",$con);

$sql="update user set picpath='$str_file' where user_name='$username'"; //将图片地址插入数据库mywork

mysql_query($sql,$con);

mysql_close($con);

if(!file_exists($upload_dir)){

mkdir($upload_dir); //创建目录 成功则返回true 失败则返回flase

}

if(!move_uploaded_file($files["tmp_name"],$str_file)){ //将上传的文件移动到新的目录 要移动文件 和文件新目录 成功则返回true

echo "图片上传失败";

echo "meta http-equiv='REFRESH' CONTENT='1;URL=插入失败后希望跳转的页面";

}

else{

//echo "img src=".$str_file."";

echo "图片上传成功";

echo "meta http-equiv='REFRESH' CONTENT='1;URL=插入成功希望挑战的页面";

}


网站标题:php数据库怎样连接图片 php商品图片连接数据库
标题链接:http://cdweb.net/article/ddigsio.html