关于图片2进制的处理

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

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

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

其实就是用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值