无法使用Miles Johnson Uploader上传图片

时间:2013-10-28 12:24:34

标签: cakephp plugins cakephp-2.3 uploader

我正在开发一个应用程序,我在其中创建了一个具有以下属性的products表。

{id, image, warranty-image, created, modified}

我正在使用miles johnson 4.3.1 uploader上传图片。所以我在$actsAs中写了Product model如下。

public $actsAs = array(
    'Uploader.Attachment' => array(
        'image' => array(
            'overwrite' => true,
            'uploadDir' => 'img/products',
            'finalPath' => '',
            'dbColumn' => 'image',
            'transforms' => array(
                'imageLarge' => array(
                    'nameCallback' => 'transformNameCallback',
                    'method' => 'resize',
                    'prepend' => 'large_',
                    'width' => 750,
                    'height' => 100,
                    'aspect' => false
                )
        ),
        'warranty_image' => array(
            'overwrite' => true,
            'uploadDir' => 'img/products',
            'finalPath' => '',
            'dbColumn' => 'warranty_image',
            'transforms' => array(
                'warranty_imageSmall' => array(
                    'nameCallback' => 'transformNameCallback',
                    'method' => 'resize',
                    'prepend' => 'small_',
                    'width' => 150,
                    'height' => 96,
                    'aspect' => false
                )
            )
        )
    ),
    'Uploader.FileValidation' => array(
        'image' => array(
            'required' => true,
            'extension' => array('gif', 'jpg', 'png', 'jpeg'),
            'type' => array('image'),
            'minWidth' => 100,
            'minHeight' => 100,
            'filesize' => 5242880
        ),
        'warranty_image' => array(
            'required' => true,
            'extension' => array('gif', 'jpg', 'png', 'jpeg'),
            'type' => 'image',
            'minWidth' => 100,
            'minHeight' => 96,
            'filesize' => 5242880
        )
    )
);

public function transformNameCallback($name, $file) {
    return $this->getUploadedFile()->name();
}

add view我写了file inputs如下。

echo $this->Form->create('Product', array('enctype' => 'multipart/form-data')); 
echo $this->Form->file('image');
echo $this->Form->file('warranty_image');
echo $this->Form->end();

此上传器仅上传image张图片,但不上传warranty_image张图片。请帮我解决问题。这项工作将更受赞赏。

3 个答案:

答案 0 :(得分:0)

我建议https://github.com/josegonzalez/cakephp-upload

这与您的观看方式非常相似,并且实际上可以正常工作。

答案 1 :(得分:0)

在视图或CakePHP表单助手输入标记中使用HTML输入标记。

echo $this->Form->input('image', array('type' => 'file', 'required' => false, 'label' => 'Select the File to Upload'));
echo $this->Form->input('warranty_image', array('type' => 'file', 'required' => false, 'label' => 'Select the File to Upload'));

答案 2 :(得分:0)

您的数据库表使用“warranty-image”作为字段。

但您的PHP代码使用的是“warranty_image”。

请注意“ - ”而不是“_”