ZF2.4文件输入RenameUpload

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZF2.4文件输入RenameUpload相关的知识,希望对你有一定的参考价值。

我有一个实现InputFilterProviderInterface的fieldset,所以它有getInputFilterSpecification函数。 __construct()函数正在添加一个文件元素('logo'),如下所示:

    $this->add(array(
        'name' => 'logo',
        'type' => 'file',
        'attributes' => array(
            'required' => false,
            'class' => 'form-control',
            'id' => 'logo',
        ),
        'options' => array(
            'label' => 'Company Logo: ',
        ),
    ));

在我的getInputFilterSpecification函数中如何添加RenameUpload输入过滤器?

我尝试了以下几种变体而没有成功:

public function getInputFilterSpecification()
{
    return array(

        array(
            'name' => 'logo',
            'filterchain' => array(
                'name' => 'filerenameupload',
                'options' => array(
                    'target' => '/public/images/' . time(),
                ),
            ),
            'required' => false,
        ),
        //... other filters
    }
}

如何添加FileRenameUpload过滤器(ZendFilterFileRenameUpload)?

[编辑]

我已将数组更改为:

        array(
            'name' => 'logo',
            'filters' => array(
                array(
                    'name' => 'filerenameupload',
                    'options' => array(
                        'target' => '/public/images/' . time(),
                    ),
                ),
            ),
            'required' => false,
        ),

哪个“看起来”有效,但我现在收到此消息 -

无法重命名文件'C: xampp tmp phpDA68.tmp'。处理文件时发生错误。

可能发生了什么错误?我如何解决它?

答案

此问题是由指定无效的target引起的。使用getcwd()对其进行前缀使得路径相对于应用程序根目录。

array(
    'name' => 'logo',
    'filters' => array(
        array(
            'name' => 'filerenameupload',
            'options' => array(
                'target' => getcwd() . '/public/images/' . time(),
            ),
        ),
    ),
    'required' => false,
),
另一答案

您必须在使用renameFile之前创建了dir。

示例:mkdir($ rootPath。'/ public / images /'。time());

以上是关于ZF2.4文件输入RenameUpload的主要内容,如果未能解决你的问题,请参考以下文章

VSCode 如何操作用户自定义代码片段(快捷键)

创建自己的代码片段(CodeSnippet)

使用Visual Studio Code自定义代码模版

是否可以动态编译和执行 C# 代码片段?

[vscode]--HTML代码片段(基础版,reactvuejquery)

webstorm代码片段的创建