码迷,mamicode.com
首页 > 数据库 > 详细

PHP + MongoDB + GridFS

时间:2015-09-14 15:43:14      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:


6.3.3. MongoDB

6.3.3.1. 安装

sudo pecl install mongo
vim /srv/php/etc/conf.d/mongo.ini
extension=mongo.so

6.3.3.2. GridFS

6.3.3.2.1. 上传文件
<?php
$connection = new MongoClient( "mongodb://neo:chen@192.168.6.1" );
$db = $connection->test;

$grid = $db->getGridFS();
$id = $grid->put("/etc/passwd");
6.3.3.2.2. 读文件
<?php
$connection = new MongoClient( "mongodb://neo:chen@192.168.6.1" );
$db = $connection->test;

$grid = $db->getGridFS();
$id = $grid->put("/etc/passwd");

$oid = new MongoId($id);

$file = $grid->get($oid);

echo $file->getBytes();
6.3.3.2.3. storeFile

storeFile 与 put 类似

<?php
$connection = new MongoClient( "mongodb://neo:chen@192.168.6.1" );
$db = $connection->test;

$grid = $db->getGridFS();
$storedfile = $grid->storeFile("/etc/passwd", array("date" => new MongoDate()));

// Return newly stored file‘s Document ID
echo $storedfile;
6.3.3.2.4. 查找文件

findOne 与 get 类似,get 只能通过id取出文件,findOne可以查找文件名,日期,尺寸,以及md5值。

<?php
$connection = new MongoClient( "mongodb://neo:chen@192.168.6.1" );
$db = $connection->test;

$grid = $db->getGridFS();
$file = $grid->findOne("/etc/passwd");

echo $file->getBytes();

指定 collections

<?php

$images = $db->mydb->getGridFS(‘images‘);

$image = $images->findOne(‘jwage.png‘);

header(‘Content-type: image/png;‘);
echo $image->getBytes();
?>
6.3.3.2.5. 遍历文件

findOne一直只返回一条数据,find可以返回结果集,实现遍历文件。

<?php
$connection = new MongoClient( "mongodb://neo:chen@192.168.6.1" );
$db = $connection->test;

$grid = $db->getGridFS();
$files = $grid->find();
foreach ($files as $file){
	print_r($file);
}


本文节选自《Netkiller PHP 手札》

http://netkiller.github.io/php/index.html

技术分享 

PHP + MongoDB + GridFS

标签:

原文地址:http://my.oschina.net/neochen/blog/505829

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!