关于图片2进制的处理

来源:互联网 发布:大数据与中国发展知乎 编辑:程序博客网 时间:2024/04/29 11:21

其实之前我在处理一些程序的时候总是不考虑服务器如何如何。

我总认为图片什么的存路径就好了啊,

但是事实上服务器上的空间是有限的,那么怎么样来保存这些图片呢,

其实就是用2进制流的形式来进行存储。

代码如下:(里面有注释,其实很简单。)

//关于图片2进制的存储include "/db/db.php";$img_path = "temp_pic/pin.jpg";$res = file_get_contents($img_path);//这里是获得的图片2进制。/** * 存储2进制,在mysql当中,数据类型,我使用了binary这个2进制,长度我先选择255.后来发现存不进去,因为2进制存的一般为2进制的,非2进制的数据是无法识别的。如果要在mysql存储使用blob就可以了。BLOB类型的字段用于存储二进制数据,所以存储图片一般使用这个来进行存储。 */$db = new Db("goods_info");$arr = array("picture"=>addslashes($res));//$db->insert($arr);

这个类是我自己写的一个简单的数据库类。

2进制还存在一个转化的问题,先把程序放到这里,闲下来了,我在把二进制图片存贮这个问题,多写写。多交流下。

有点地方要注意,bolb类型虽然好,但是最大支持的是64k大小的。如果超了会是一件比较头疼的事情。

我建议使用。MediumBlob类型。支持的16m,基本够用了。


这里我说明了存储,那么如何取出来生成呢?

其实网上有很多,我写一个吧。

if(isset($picture['picture'])){$handle = fopen("cache/pic/1.jpg","w");//打开文件准备写入fwrite($handle,$picture['picture']);//写入,这里的$picture['picture']就是从数据库中取出来的图片二进制。fclose($handle);?><div style="text-align:center;"><img src="cache/pic/1.jpg"></div>

最后编辑时间:2014年3月12日17:18:38

0 0
原创粉丝点击