我正在开发一个应用程序,我在其中创建了一个具有以下属性的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
张图片。请帮我解决问题。这项工作将更受赞赏。
答案 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”。
请注意“ - ”而不是“_”