php连接数据库存图片 php显示数据库图片

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

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

创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、网站优化、微网站、成都小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计制作、成都做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

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实现上传图片保存到数据库的方法。具体分析如下:

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$hostname="localhost"; $username="user"; $password="88888888";$server_link=@mysql_connect($hostname,$username,$password) or die; if($server_link) echo "与服务器的连接成功!br";$db_link=@mysql_select_db("phpmyadmin",$server_link) or die;

看得头大

图片在浏览器上显示,读取的是数据库中的字段,

$sql="select * from abc";$result=mysql_query($sql,$server_link);

while($rs=mysql_fetch_array($result)){

echo 'img src='.$rs['a'].'';

}

这样就显示了图片了,加个img src=,这样就解决了图片显示问题

图片直接存入数据库,那是个做程序的都不会采取的方法,你想把数据库撑死吗?都是把图片上传到服务器目录下,然后获取图片地址,显示即可

本文名称:php连接数据库存图片 php显示数据库图片
本文链接:https://www.cdcxhl.com/article42/ddecghc.html

成都网站建设公司_创新互联,为您提供搜索引擎优化网站收录域名注册做网站外贸建站品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设