0

私は mongodb の新規ユーザーです。cakephp を使用しています。ichikaway の Cakephp のプラグインをテストしようとしています。このプラグインにより、cakephp が mongodb (NoSql データベース) と連携できるようになります。それで、誰かがすでに画像のアップロードを試みたのではないかと思っていますか?

4

2 に答える 2

0

Cakephp -mongodbライブラリは、 GridFSと対話するためのAPIを提供していないようです。最善の策は、MongodbSource :: getMongoDb()メソッドを使用してMongoDBインスタンスを取得し、 MongoGridFSクラスに直接アクセスすることです。PHPのドキュメントには、ファイル(アップロードされたファイルを含む)をGridFSに保存するためのいくつかの例が含まれています。

于 2012-08-13T18:32:34.550 に答える
0

私はこれを試してみましたが、うまくいきました!

     <?php

      class ProductsController extends AppController {
       public $name = 'Products';


       public function add(){
      if ($this->request->is('post')){
        debug($this->request->data);
        $dir = IMAGES.date('Y');
        if (!file_exists($dir))
            mkdir($dir);
        $dir .= DS.date('m');
        if (!file_exists($dir))
            mkdir($dir);
        $f = explode('.', $this->request->data['Product']['file']['name']);
        $ext = '.'.end($f);
        $filename = Inflector::slug(implode('.',array_slice($f,0,-1)),'-');
        debug($ext);
        debug($filename);

        $data = array(
            'name' => $this->request->data['Product']['name'],
            'url' => date('Y').'/'.date('m').'/'.$filename.$ext
            );
        //debug($data);
        if ($this->Product->save($data)){
            move_uploaded_file($this->request->data['Product']['file']['tmp_name'], $dir.DS.$filename.$ext);
            $id = $this->Product->getInsertId();
            debug($id);
        }
    }
}
于 2012-08-14T09:09:55.293 に答える