PHP操作MongoDB 存储图片 文件

来源:互联网 发布:java代理机制 编辑:程序博客网 时间:2024/06/07 13:39
<?php 
//初始化gridfs 
$conn = new Mongo(); //连接MongoDB 
$db = $conn->photos; //选择数据库 
$grid = $db->getGridFS(); //取得gridfs对象 


//gridfs有三种方式存储文件 
//第一种直接存储文件 
$id = $grid->storeFile("./logo.png"); 


//第二种存储文件二进制流 
$data = get_file_contents("./logo.png"); 
$id = $grid->storeBytes($data,array("parame"=>’附加参数将随图片一起存入’)); 


//第三种保存直接表单提交的文件$_FILES 
$id = $grid->storeUpload('upfile'); 
//相当于 
$id = $grid->storeFile($_FILES[‘upfile’][‘tmp_name’]); 


//--------------以上是保存图片--下面开始读取图片---------------- 


//保存成功后返回$id = md5字符串 
$logo = $grid->findOne(array('_id'=>$id)); //以_id为索引取得文件 
header('Content-type: image/png'); //输出图片头 

echo $logo ->getBytes(); //输出数据流 


$m=new Mongo("mongodb://syberos:syberos_oa@172.16.160.65/syberosdoc");
$db = $m->syberosdoc;     

//集合前缀     

$prefix = 'meeting';
$grid = $db->getGridFS($prefix ); //取得gridfs对象 
$data = file_get_contents("bb.docx"); 




$id = $grid->storeBytes($data,array("parame"=>'附加参数将随图片一起存入')); 
$logo = $grid->findOne(array('_id'=>$id)); //以_id为索引取得文件 
Header( "Content-type:  application/octet-stream "); 
Header( "Accept-Ranges:  bytes "); 
Header( "Content-Disposition:  attachment;  filename= 4.doc"); 
echo $logo ->getBytes(); //输出数据流 


//查询 带参数

$m=new Mongo("mongodb://syberos:syberos_oa@172.16.160.65/syberosdoc");
$db = $m->syberosdoc;  


$prefix = 'meeting';
$grid = $db->getGridFS($prefix); //取得gridfs对象 
//$data = file_get_contents("bb.docx"); e




//$id = $grid->storeBytes($data,array('name'=>'aaa')); 
//echo strval($id);die;
$logo = $grid->findOne(array(
'_id'=>new MongoId($_GET['ids']),
'name'=>'aaa')


); //以_id为索引取得文件 


Header( "Content-type:  application/octet-stream "); 
Header( "Accept-Ranges:  bytes "); 
Header( "Content-Disposition:  attachment;  filename= 4.doc"); 
echo $logo ->getBytes(); //输出数据流 



//修改参数

$m=new Mongo("mongodb://syberos:syberos_oa@172.16.160.65/syberosdoc");
$db = $m->syberosdoc;  




$prefix = 'meeting';
$grid = $db->getGridFS($prefix); //取得gridfs对象 
//$data = file_get_contents("bb.docx"); e


$id="5912a941749785c406000039";


$logo = $grid->findOne(array(
'_id'=>new MongoId($id)
)




); 




$logo->file['author'] = $logo->file['author']+1;
$grid->save($logo->file);




var_dump($logo->file);




?>
0 0
原创粉丝点击