赞
踩
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 '
';}
?>
}
?>
结果截图:
方式二:通过在数据库中存储图片的路径来实现图片的存储
(1)将图片上传到服务器
(2)取出图片的路径存放到数据库中
(3)使用时取出数据库的路径
具体实现有兴趣的可以去完成,没有什么技术难点,欢迎大家交流!
方法优劣:
多服务器的时候应该使用第一种方法较好,单服务器第二种效率高一点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。