[英]ZF2.4 File input RenameUpload
我有一个实现InputFilterProviderInterface
,所以它具有功能getInputFilterSpecification
。 __construct()
函数正在添加一个文件元素(“徽标”),如下所示:
$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过滤器( Zend\\Filter\\File\\RenameUpload
)?
我将数组更改为:
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之前,您必须已创建目录。
示例:mkdir($ rootPath。'/ public / images /'。time());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.