0

CakePHP アップロード プラグインを動作させようとしています。ファイルは正常にアップロードされ、サムネイルが作成されます...などですが、いくつかの問題があります。

-「アップロード」テーブルの「名前」フィールドが空です

-「アップロード」テーブルの「アップロード」フィールドが空です (ドキュメントの例の「添付ファイル」フィールド)

- アップロード モデルの「パス」セットで {モデル} を使用すると、「アップロード」がモデル フォルダーとして使用されます - 毎回アップロード モデルではなく、関連付けられたモデルのフォルダーに移動する必要があります

//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');
4

1 に答える 1

0

デイブ:

-「アップロード」テーブルの「名前」フィールドが空です

これは正常です。「ファイル名」フィールドではなく、「表示」名フィールドの方が多いと思います。名前は、例の「写真」フィールドに保存する必要があります。

- アップロード モデルの「パス」セットで {モデル} を使用すると、「アップロード」がモデル フォルダーとして使用されます - 毎回アップロード モデルではなく、関連付けられたモデルのフォルダーに移動する必要があります

次のように、モデルに別名を付けたいと思うでしょう:

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

// Then

$this->ArticleData->AliasModelHere->save($data)
于 2012-05-07T23:58:43.847 に答える