首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [转帖]上传图片存入MYSQL并读出的方法  


  作者:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2005-07-09 20:51:32 阅读 3124 次 回复 0 次 得分0  |   字号 字色
[转帖]上传图片存入MYSQL并读出的方法
经常有朋友问如何将图片保存到MYSQL数据库并如何读取的问题,今天在网上找到一篇文章,并有代码,代码我没有亲自测试,不知道是否可以准确运行。有需要的朋友可以看一下。


另外,因为保存图片到数据库占用很大的容量,对宝贵的数据库资源太浪费,所以一般情况下不建议将图片保存到数据库中。可以将图片存储到目录中,用数据库存储路径和文件名.

用到的数据表
 
CREATE TABLE `image_table` ( 
 `id` int(4) NOT NULL auto_increment, 
 `image` blob NOT NULL, 
 PRIMARY KEY  (`id`) 
) TYPE=MyISAM;
 


上传图片存储到MySQL:

<?php 
// pic_database_upload.php By Bleakwind 
$Host = "localhost"; 
$User = "bleakwind"; 
$Password = "bleakwind"; 
$Database = "test"; 

mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error()); 
mysql_select_db($Database) or die("Could not select database!"); 

if(!empty($_FILES['image']['name'])){ 
  $image_data = addslashes(fread(fopen($_FILES['image']['tmp_name'], "rb"), filesize($_FILES['image']['tmp_name']))); 
  $sql = "INSERT INTO `image_table` (`image`) VALUES ('".$image_data."')"; 
  if(mysql_query($sql)){ echo "成功!"; }else{ echo "失败!"; } 

?> 

<form action="" method="post" name="form" enctype="multipart/form-data"> 
<input type="file" name="image" size="30"> 
<input type="submit" value="Upload"> 
</form>
 


从数据库中取出图片.
注意:
1.可能具体应用你还要分配一个字段来存储图片类型,这样下面的header( "content-type: image/gif");这句的gif用相应的类型替换掉.
2.如果想取出多个图片可以将下面的文件存成一个文件,在另外的文件遍历ID后调用此文件输出.
CODE  
<?php 
// pic_database_output.php By Bleakwind 
header( "content-type: image/gif"); 
$Host = "localhost"; 
$User = "bleakwind"; 
$Password = "bleakwind"; 
$Database = "test"; 
$id   = 1; 

mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error()); 
mysql_select_db($Database) or die("Could not select database!"); 

$sql    = "SELECT * FROM `image_table` WHERE `id`=" . $id; 
$result = mysql_query($sql) or die("Could not perform query!"); 
$row    = mysql_fetch_array($result); 
echo $row['image']; 
?>
 
 
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.006sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版