网站首页 > 文章中心 > 其它

php数据库怎么存取图片

作者:小编 更新时间:2023-09-06 22:53:36 浏览量:155人看过

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

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

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

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

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

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

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

数据表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?

//?连接数据库?

@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."')";?

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'];?

}?

}else{?

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

html?

head?

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?

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

$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().'"

/body?

/html?

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

PHP怎么把图片数据保存为jpg图片到服务器目录

第一步:通过$_FILES获取文件信息.

第二步:指定新文件名称以及路径,并赋值给一个变量.

第三步:通过move_uploaded_file上传文件.

第四步:上传成功后,将数值存入数据库服务器目录即可.

代码如下

①conn.php

$host="localhost";?//数据库服务器名称?

$user="root";?//用户名?

$conn=mysql_connect($host,$user,$pwd);?

mysql_query("SET?

character_set_client=binary",$conn);?

if?($conn==FALSE)?

{?

echo?"center服务器连接失败!br请刷新后重试./center";?

return?true;?

$databasename="database";//数据库名称?

do?

$con=mysql_select_db($databasename,$conn);?

}while(!$con);?

if?($con==FALSE)?

echo?"center打开数据库失败!br请刷新后重试./center";?

if?($_GET['action']?==?"save"){?

include_once('conn.php');?

include_once('uploadclass.php');?

$title=$_POST['title'];?

$pic=$uploadfile;?

if($title?==?"")?

echo"Scriptwindow.alert('对不起!你输入的信息不完整!');history.back()/Script";?

$sql="insert?into?upload(title,pic)?values('$title','$pic')";?

$result=mysql_query($sql,$conn);?

//echo"Scriptwindow.alert('信息添加成功');location.href='upload.php'/Script";?

title文件上传实例/title?

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

table?border=0?cellspacing=0?cellpadding=0?align=center?width="100%"?

tr?

td标题:/td?

tdinput?name="title"?type="text"?id="title"/td?

/tr?

td文件:?/td?

tdlabel?

input?name="file"?type="file"?value="浏览"?

/label/td?

td?/td?

tdinput?type="submit"?value="上?传"?name="upload"/td?

/table/td?

/table?

/html

$uploaddir?=?"upfiles/";//设置文件保存目录?注意包含/?

$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型?

$patch="upload/";//程序所在路径?

//获取文件后缀名函数?

function?fileext($filename)?

return?substr(strrchr($filename,?'.'),?1);?

//生成随机文件名函数?

function?random($length)?

$hash?=?'CR-';?

$max?=?strlen($chars)?-?1;?

mt_srand((double)microtime()?*?1000000);?

for($i?=?0;?$i?$length;?$i++)?

$hash?.=?$chars[mt_rand(0,?$max)];?

return?$hash;?

$a=strtolower(fileext($_FILES['file']['name']));?

//判断文件类型?

if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))?

$text=implode(",",$type);?

echo?"您只能上传以下类型文件:?",$text,"br";?

//生成目标文件的文件名?

else{?

$filename=explode(".",$_FILES['file']['name']);?

$filename[0]=random(10);?//设置随机数长度?

$name=implode(".",$filename);?

//$name1=$name.".Mcncc";?

$uploadfile=$uploaddir.$name;?

while(file_exists($uploadfile));?

if?(move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))?

if(is_uploaded_file($_FILES['file']['tmp_name']))?

echo?"上传失败!";?

else?

{//输出图片预览?

echo?"center您的文件已经上传完毕?上传图片预览:?/centerbrcenterimg?src='$uploadfile'/center";?

echo?"brcentera?href='upload.htm'继续上传/a/center";?

php,数据库如何保存图片并且能取出在页面中显示?

一般不会把图片直接存储在数据库中,一般在数据库中存储图片的文件路径,然后通过相对路径访问图片

php 数据库图片存储问题?

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

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

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

php中如何将图片储存在数据库里

两种方法:

一:将图片上传至指定目录,在数据库中保存文件名和文件路径.

二:将图片文件读入字符串,将字符串保存到数据库,不推荐(没那么长的字段长度支持).

以上就是土嘎嘎小编为大家整理的php数据库怎么存取图片相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章