thinkphp支持mongodb的GridFS
2015-12-11 10:49
561 查看
前言
Thinkphp本身是没有对mongodb的Gridfs进行封装支持的,所以在项目一些需要遇到以GridFS保存文件,例如图片,视频,文档文件之类时,却不能很好满足。如果要使用,又得同时连接连接Mongo数据库,对于在config.php里配置的数据库却显得有些大材小用。下面是对Tp框架的db类的一些修改,让TP可以支持Mongodb的Gridfs。
方法
(1)修改Tp框架的Think/Db/Driver/Mongo.class.php类。在文件中添加函数
(2)修改Think/Model/MongoModel.class.php.在文件中添加函数
在控制器中的用法
Thinkphp本身是没有对mongodb的Gridfs进行封装支持的,所以在项目一些需要遇到以GridFS保存文件,例如图片,视频,文档文件之类时,却不能很好满足。如果要使用,又得同时连接连接Mongo数据库,对于在config.php里配置的数据库却显得有些大材小用。下面是对Tp框架的db类的一些修改,让TP可以支持Mongodb的Gridfs。
方法
(1)修改Tp框架的Think/Db/Driver/Mongo.class.php类。在文件中添加函数
/** *mongo的GridFS的获取对象 ** @param object GridFS */ public function getGridFS(){ return $this->_mongo->getGridFS(); }
(2)修改Think/Model/MongoModel.class.php.在文件中添加函数
/** *mongo的GridFS的获取对象 ** @param object GridFS */ public function getGridFS(){ return $this->db->getGridFS(); }保存好这两个文件。
在控制器中的用法
<?php namespace Home\Controller; use Think\Controller; class GridfsController extends Controller{ public function index(){ //获取数据库的对象 $mongo=new \Think\Model\MongoModel; // 获取GridFS的对象 $G=$mongo->getGridFS(); /** *GridFS操作的方法在tp中并没有封装,所以只能用原生的php_mongo的类的方法进行数据操作 */ // 插入的参数数据 $metadata=array('uid'=>123456,"metadata" =>array("author" =>'bing')); // 保存文件,返回id $id=$G->storeFile($_SERVER['DOCUMENT_ROOT'].'/huang.txt',$metadata); $cour=$G->find(); foreach ($cour as $obj) { echo 'filename:'.$obj->getFilename(); } } } ?>
相关文章推荐
- yum安装mongodb
- MongoDB的连接运算
- 十个 MongoDB 使用要点
- mongodb 分页查询
- mongodb 使用场景和不使用场景
- MonjaDB —— 基于 Eclipse 的 MongoDB GUI 客户端工具(转载)
- mongodb命令
- MongoDB 基本命令
- kettle-6.0从MySQL中读取数据并写入MongoDB的教程
- mongodb-2
- MongoDB的地埋空间数据存储、空间索引以及空间查询
- Mongodb查询指定字段方法
- Windows MongoDB:搭建三节点 Replica Set 环境
- ubuntu上安装mongodb,并进行简单的增删改查操作
- Mongodb亿级数据量的性能测试
- Mongodb-1
- Scrapy与Mongodb结合爬虫
- MongoDB学习 (六):查询
- Mongodb 资源
- Mongodb3安装授权