最近项目需要用到MongoDB存取文件,这里有个简单的PHP示例:
public function run(){
//初始化gridfs
$m = new MongoClient(); // 连接
$db = $m->selectDB("excel");
//dump($m);exit;
//$collection = $db->testexcel;
$grid = $db->getGridFS(); //取得gridfs对象
//gridfs有三种方式存储文件
//第一种直接存储文件
$id = $grid->storeFile(dirname(__FILE__)."/EmptyAction.class.php");
echo $id;
//获取文件
$file = $grid->findOne(array('_id'=>$id)); //以_id为索引取得文件
//header('Content-type: image/png'); //输出图片头
dump($file);
}
在MongoDB命令行中查看所有上传的文件:
1.show dbs
列出所有数据库
2.use excel
进入名为excel的数据库
3.db.fs.files.find()
列出所有上传的文件
通过GridFS上传获取文件,它默认是传到fs.files这个collection中。GridFS有两个集合,”fs.chunks”和”fs.files”,前者是分片存储,后者是普通文件存储,适合小于4M的文件。