当前位置:   article > 正文

mysql存储图片的几种方式_PHPmysql存储照片的两种方式

mysql中图片如何存储

PHP-mysql存储照片的两种方式

方式一:把图片数据存储在数据库中(二进制)

数据库代码:

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 ;

展现代码:

// 连接数据库

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

@mysql_select_db('test',$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:test.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{

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

?>

upload image to db demo

图片:

$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 '

test.php?action=show&id='.%24val%5B'id'%5D.'&t='.time().'

';

}

?>

}

?>

结果截图:

a7ddc10441a18f90db567a55055f1c8e.png

方式二:通过在数据库中存储图片的路径来实现图片的存储

(1)将图片上传到服务器

(2)取出图片的路径存放到数据库中

(3)使用时取出数据库的路径

具体实现有兴趣的可以去完成,没有什么技术难点,欢迎大家交流!

方法优劣:

多服务器的时候应该使用第一种方法较好,单服务器第二种效率高一点

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号