【问题标题】:Zend Framework 2 - get the new filename when uploading using a validator for inputfilterZend Framework 2 - 使用输入过滤器的验证器上传时获取新文件名
【发布时间】:2016-05-26 16:27:49
【问题描述】:

我是 ZF2 的新手,我正在尝试上传文件并在验证器中使用重命名文件适配器过滤器的“随机化”选项。

在模型中我有这个:

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/'
                    )
                )
            )
        ));
.....

在图像验证器中我有这个:

$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 值返回给模型,以便将其写入数据库?或者您有其他建议来完成这项工作吗?

谢谢!

【问题讨论】:

    标签: file validation zend-framework zend-framework2


    【解决方案1】:

    对于文件输入,有一个特殊的FileInput 类。您可以找到文档here。对于文件上传(还有图像),建议在输入过滤器中使用这个特殊的输入类。

    如果您在实施时遇到问题,请发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多