php数据库怎么存取图片,php怎么上传图片并保存到数据库

怎样用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怎么把图片数据保存为jpg图片到服务器目录

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

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

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

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

代码如下

1.conn.php

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

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

$pwd="1721"; //密码 

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

mysql_query("SET 

character_set_connection=gb2312, 

character_set_results=gb2312, 

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"; 

return true; 

?

2.upload.php

?php 

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"; 

html 

head 

title文件上传实例/title 

/head 

body 

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

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

tr 

td width=55 height=20 align="center" /TD 

td height="16" 

table width="48%" height="93" border="0" cellpadding="0" cellspacing="0" 

tr 

td标题:/td 

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

/tr 

tr 

td文件: /td 

tdlabel 

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

input type="hidden" name="MAX_FILE_SIZE" value="2000000" 

/label/td 

/tr 

tr 

td /td 

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

/tr 

/table/td 

/tr 

/table 

/form 

/body 

/html

3.uploadclass.php

?php 

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

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

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

//获取文件后缀名函数 

function fileext($filename) 

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

//生成随机文件名函数 

function random($length) 

$hash = 'CR-'; 

$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; 

$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']); 

do 

$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数据库怎么存取图片,php怎么上传图片并保存到数据库
标题路径:http://scjbc.cn/article/hspscd.html

其他资讯