2012-05-07 41 views
0

試圖讓CakePHP Upload Plug-in工作。文件上傳罰款,縮略圖創建...等,但有一些問題:上傳插件問題

在「上傳」表-the「名稱」字段爲空

在-the「上傳」場'uploads'表爲空(文檔示例中的'attachment'字段)

-if我在上傳模型中設置的'path'中使用了{model},它使用'upload'作爲模型文件夾 - 它應該進入關聯模型的文件夾,而不是每次上傳模型

//Upload MODEL 
public $actsAs = array(
    'Upload.Upload' => array(
     'photo' => array(
      'thumbnailSizes' => array(
       'xvga' => '1024x768', 
       'vga' => '640x480', 
       'thumb' => '80x80', 
      ), 
      'thumbnailMethod' => 'php', 
      'path' => '{ROOT}webroot{DS}uploads{DS}{model}{DS}{field}{DS}', 
      'maxSize' => '5242880', //5MB 
      'mimetypes' => array('image/jpeg', 'image/png', 'image/gif', 'image/bmp'), 
      'extensions' => array('jpg', 'gif', 'png'), 
     ), 
    ) 
); 

//ArticleData MODEL 
public $hasMany = array(
    'Upload' => array(
     'className' => 'Upload', 
     'foreignKey' => 'foreign_key', 
     'conditions' => array(
      'Upload.model' => 'ArticleData', 
     ), 
    ), 
); 

//CONTROLLER 
public function admin_upload() {   
    if(!empty($this->request->data)) { 
     $this->loadModel('Upload'); 
     debug($this->request->data); 
     if($this->Upload->save($this->request->data)) { 
      $this->Session->setFlash('SAVED!!!!!!!!'); 
     } else { 
      $this->Session->setFlash('NOT SAVED!!!!!!!!'); 
     } 
    } 
} 

// VIEW 
echo $this->Form->create('ArticleData', array('type'=>'file')); 
echo $this->Form->input('Upload.model', array('type'=>'hidden', 'value'=>'ArticleData')); 
echo $this->Form->input('Upload.foreign_key', array('type'=>'hidden', 'value'=>'4f93676e-347c-4e0c-8e6c-0a3cadcd7f7c')); 
echo $this->Form->input('Upload.photo', array('type'=>'file')); 
echo $this->Form->end('Submit'); 

回答

0

Dave:

-the「名稱」字段中的「上傳」表是空的

這是正常的,我認爲是比較「顯示」名稱字段,而不是「文件名」欄中。名稱應該存儲在示例中的「照片」字段中。

- 如果我在上傳模型設置「路徑」使用{}模型,它使用「上傳」作爲模型文件夾 - 它應該關聯的模型,而不是模型上傳的文件夾中每走時間

你會想別名的模式,就像這樣:

//ArticleData MODEL 
public $hasMany = array(
    'AliasModelHere' => array(
     'className' => 'Upload', 
     'foreignKey' => 'foreign_key', 
     'conditions' => array(
      'Upload.model' => 'ArticleData', 
     ), 
    ), 
); 

// Then 

$this->ArticleData->AliasModelHere->save($data)