我已经安装了Miles Johnson's Uploader plugin并使用我的一个模型进行设置并使其完美运行。很好。
然后我把它设置在另一个具有几乎相同代码的模型上[唯一的区别是上传路径]并且它不适用于第二个模型。当我提交表单时,插件似乎没有注意到;尝试将POST文件数组直接插入数据库时出现SQL错误。
这是代码。 [除此之外,插件是在引导程序中导入的]
public $actsAs = array(
'Uploader.Attachment' => array(
'photo' => array(
'name' => 'formatFileName',
'uploadDir' => '/uploads/uses/img/',
'dbColumn' => 'photo',
'maxNameLength' => 30,
'overwrite' => true,
'stopSave' => true,
'allowEmpty' => false,
'transforms' => array(
array('method' => 'resize', 'width' => 240, 'dbColumn' => 'photo_thumb'))
)
),
'Uploader.FileValidation' => array(
'fileName' => array(
'extension' => array('gif', 'jpg', 'png', 'jpeg'),
'required' => true
)
)
);
这是在没有上传的模型上,唯一的区别是uploadDir。
插件只适用于一个型号吗?有线索吗? thnx:}
这是我的观看代码:
echo $this->Form->create('Use', array('type' => 'file'));
echo $this->Form->input('Use.photo', array('type' => 'file'));
echo $this->Form->input('Use.desc', array('rows' => '3', 'label' => 'Description'));
echo $this->Form->end('Add to Gallery');
这是我的控制器代码:
public function add() {
if ($this->request->is('post')) {
$this->Use->set('user_id', $this->Auth->user('id'));
if ($this->Use->save($this->request->data)) {
$this->Session->setFlash('Your Use has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your Use.');
}
}
}
答案 0 :(得分:0)
该插件不仅适用于一个型号。您可以在网站中添加更多上传器。
该模型似乎很好,我建议您查看表单,看看您是否以正确的方式在表单中创建了表单(对于您的表单很有意义:'type' => 'file'
例如:
echo $this->Form->create('Product', array ('class' => 'form', 'type' => 'file'));
echo $this->Form->input('ModelImage.filename', array('type' => 'file'));
echo $this->Form->submit('Add Image', array('id'=>'add_image'));
echo $this->Form->end();
或问题是名称Use
尝试使用其他
答案 1 :(得分:0)
通过Alessandro [谢谢:)检查代码后,我发现了问题。
如果查看“视图”和“控制器”代码,可以看到该模型名为“使用”。这就是问题所在,因为Use是PHP中的一个加载词,我不应该将它用作模型名称。
我将模型重命名为Outcome,现在Uploader完美运行。