公益圖書館-MongoDB-筆記

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   io   使用   ar   檔案   

1、http://cn2.php.net/manual/en/class.mongogridfs.php

class FileController extends SyController{    /**@author yj     * @description 要使用下面兩個函數,必須先初始化     * Date: 14-9-3     */    public function init(){        header("Content-type:text/html;charset=utf-8");        // 串連Mongo並初始化GFS        // 資料庫命名file        $conn = new \MongoClient();        $db = $conn->picDB;        // 取得gridfs對象        $prefix = ‘pic‘;        $collection = $db->getGridfs($prefix);        return $collection;    }    /**@author yj     * @description 將所有二進位檔案上傳入MongoDB,並返迴文件索引ID值     * 專用於表單提交資源方式     * Date: 14-9-2     * Time: 11:21     */    public function upload($filename,$collection)    {        $id = $collection->storeUpload($filename);//        擷取上一步的id對象中的_id字串        $id = strval($id);        return $id;    }    /**@author yj     * @description 根據ID值刪除對應資源     * Date: 14-9-3     */    public function delete($id,$collection)    {//        將id字串轉化成id對象        $collection->delete(new \MongoId($id));    }    /**     * @author:yj     * 利用資源id和資源type把資源從mongoDB中擷取並顯示     */    public function get()    {        header("Content-type:text/html;charset=utf-8");        $conn = new \MongoClient();        $db = $conn->picDB;//      取得gridfs對象        $prefix = ‘pic‘;        $collection = $db->getGridFS($prefix);        //擷取id和type        $id = I(‘get.id‘);        $type = I(‘get.type‘);        //返回資料        $object = $collection->findOne(array(‘_id‘ => new \MongoId($id)));        header(‘Content-type:‘.$type);        echo $object->getBytes();    }

注意,儲存在mongoDB裡面的‘_id‘是一個對象ID,也叫Object ID。而我們存入mysql裡面的ID是一個字串ID。轉換方法如下:

$id = strval($id);  //對象ID中擷取字串ID
‘_id‘ => new \MongoId($id)  //將字串ID轉化成Mongo對象ID

2、在其他控制器裡若想要使用MongoDB

//初始化MongoDB資料庫$collection = R(‘file/init‘);//使用表單上傳檔案,$key是表單中input標籤的name$id = R(‘file/upload‘,array($key,$collection));//根據字串ID $avatar_id來刪除Mongo裡面的對應.files .chunks檔案$collection->delete(new \MongoId($avatar_id));//根據字串ID直接從Mongo裡面擷取資源並根據type顯示出來<img src="/file/get/type/image/id/{$avatar_id}"/>

 

公益圖書館-MongoDB-筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.