A-A+

在mysql中存储任意格式的图片

2013年10月09日 PHP技术文章 评论 12 条 阅读 560 views 次

之前用ASP的时候,用的是access数据库,图片可以以二进制的方式存储到access数据库当中,如果按照数据库规范标准,图片是不应该存储到数据库中的,而应该通过上传功能上传到指定文件夹,然后将图片的路径存储到数据库当中,这样会更规范,当然,大部分网站也是这样做的,没有人会把图片存储到数据库当中。

而如果我们网站的需求不是很大,或者有其它需要,就可以将图片上传到数据库当中,在 access 当中,将数据库转换成二进制就可以了,在PHP里,同样要将图片转换成字符,下面是一个可以将任意格式的图片存储到 mysql 数据库中的代码,在此分享下。

include("conn.php");
$filename = "这里写绝对路径的图片";
$fp=fopen($filename, "rb");

$picture = addslashes(fread($fp, filesize($filename)));
$picture = base64_encode($picture);

//fclose($fp);

$query = "insert into data(id,filename,Image) valu
es(NULL,'$filename', '$picture');";
$result = mysql_query($query)or die(mysql_error());
echo "存储图片成功。";

//读取图片:
include('conn.php');
// 连接数据库查询
$sql="select * from data where id=55";
$result=mysql_query($sql);
//$num_results=mysql_num_rows($result);
$row=mysql_fetch_object($result);
echo stripslashes(base64_decode($row->Image));
mysql_free_result($result);
mysql_close($conn);

使用的时候修改对应的sql语句就可以了。也可以尝试将其写在同一个php文件中(输出图片的文件中不可写入其他内容)。^_^

标签:

12 条留言  访客:12 条  博主:0 条

  1. 馒头饭

    那样数据库体积会不会很打呢?

  2. OA论坛

    我不会数据库

  3. 创意网

    学习了,应该用得到。

  4. 生日礼物送什么好

    从来没有尝试数据库里存放图片,一直都是存放路径的说

  5. 罗胜

    数据库对于我来说是个神秘的东西0.0

  6. 好运品牌鞋

    学习一下,好陌生的代码,自己还是不能入门。

  7. 慢点博客

    企业的展示站可以用的到。不一定实用,但是个技术,就能有其他联想的可能。

    • 微历史

      存数据库并不好

  8. 锋子

    没怎么看明白?图片多了的话,数据库吃得消吗?

  9. 历史百家争鸣

    博客不错,我喜欢,虽然我喜欢历史,但是我也是做IT的,哈哈,收藏啦

  10. 海棠秋客

    技术文章,强烈支持!

  11. 免费部落

    原来是这样操作的,有用!

给我留言