我是ZF2的新手,我正在尝试上传文件并使用" randomize"验证器内重命名文件适配器过滤器的选项。
在模型中我有这个:
public function getInputFilter()
{
$inputFilter = new InputFilter();
$inputFilter->add(array(
'name' => 'picture',
'required' => call_user_func(function() use ($prize_type_id){
if(isset($this->picture_old) && !empty($this->picture_old)){
return false;
}
if(in_array($prize_type_id, array(1,2,3,5))){
return true;
}else{
return false;
}
}),
'validators' => array(
array(
'name' => '\Pm\Validators\File\Image',
'options' => array(
'minSize' => '1',
'maxSize' => '1024',
'newFileName' => null,
'uploadPath' => './public/uploads/images/'
)
)
)
));
.....
在Image验证器中,我有这个:
$renameOptions['randomize'] = true;
$renameOptions['target'] = $uploadPath.$newFileName;
$this->filters[] = new Rename($renameOptions);
$this->fileAdapter->setFilters($this->filters);
$this->fileAdapter->setValidators($this->validators);
if ($this->fileAdapter->isValid()) {
$this->fileAdapter->receive();
return $newFileName;
....
如何将$ newFileName值返回给Model,以便将其写入数据库?或者您有其他建议来完成这项工作吗?
谢谢!
答案 0 :(得分:0)
对于文件输入,有一个特殊的FileInput
类。您可以找到文档here。对于文件上传(也是图像),建议在输入过滤器中使用此特殊输入类。
如果您在实施时遇到问题,请发表评论。