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的主要内容,如果未能解决你的问题,请参考以下文章