2012-08-13 2 views
0

나는 mongodb의 새로운 사용자이기 때문에 cakephp를 사용하고 있습니다. 나는 ichikaway에서 cakephp의 플러그인을 테스트하려고하고있다. 이 플러그인은 mongodb (NoSql 데이터베이스)로 작업하는 cakephp를 허용합니다. 그래서 누군가가 이미 이미지 업로드를 시도했는지 궁금합니다.cakephp와 mongodb를 사용하여 이미지 파일 추가

+0

죄송합니다. 여기에 질문을 볼 수 없습니까? 무엇을 시도하고 어떤 어려움을 겪고 있습니까? –

+0

이것은 내가 Sql 데이터베이스의 경우 수행하는 것입니다 : –

+0

여기에 질문이 없습니다. –

답변

0

cakephp-mongodb 라이브러리는 GridFS과 상호 작용하기위한 API를 제공하지 않는 것 같습니다. 가장 좋은 방법은 MongoDB 인스턴스를 얻고 MongoGridFS 클래스에 직접 액세스하려면 MongodbSource::getMongoDb() 메서드를 사용하는 것입니다. PHP 문서에는 GridFS에 파일 (업로드 된 파일 포함)을 저장하는 몇 가지 예제가 포함되어 있습니다.

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); 
     } 
    } 
}