0

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

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

miles johnson 4.3.1 uploader用来上传图片。所以我写$actsAsProduct 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图片。请帮助我获得解决方案。这项工作将受到更多赞赏。

4

3 回答 3

0

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

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'));
于 2014-01-11T06:52:22.063 回答
0

我会推荐https://github.com/josegonzalez/cakephp-upload

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

于 2013-11-16T21:28:29.737 回答
0

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

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

注意“-”而不是“_”

于 2014-01-13T06:37:05.490 回答