Zend form Zend-inputfilter获取随机名称
你好,我正在用输入文件尝试ZF2表单 我有一个带有文件输入的表单,我想在数据库中插入随机名称 如何返回随机名称? 谢谢 这是一个简单的表单类:Zend form Zend-inputfilter获取随机名称,zend-form,zend-framework2,Zend Form,Zend Framework2,你好,我正在用输入文件尝试ZF2表单 我有一个带有文件输入的表单,我想在数据库中插入随机名称 如何返回随机名称? 谢谢 这是一个简单的表单类: class OrdineForm extends Formhttp://stackoverflow.com/questions/ask public function __construct($name = null) { parent::__construct('ordine'); $this->setAttribut
class OrdineForm extends Formhttp://stackoverflow.com/questions/ask
public function __construct($name = null)
{
parent::__construct('ordine');
$this->setAttribute('method', 'post');
$this->addElements();
$this->addInputFilter();
}
public function addElements(){
$this->add(array(
'name' => 'pdf',
'attributes' => array(
'type' => 'text',
'disabled' =>'true',
),
'options' => array(
'label' => 'PDF',
),
));
// FILE INPUT
$file = new File('file');
$file
->setLabel('PDF attach')
->setAttributes(array(
'id' => 'file',
));
$this->add($file);
$this->add(array(
'name' => 'submit',
'attributes' => array(
'type' => 'submit',
'value' => 'Add',
'id' => 'submitbutton',
'class' => 'btn btn-success'
),
));
}
public function addInputFilter()
{
$inputFilter = new InputFilter\InputFilter();
$fileInput= new FileInput('file');
$fileInput->setRequired(false);
$fileInput->getFilterChain()->attachByName(
'filerenameupload',
array(
'target' => './public/tmpuploads/',
'randomize' => true,
"UseUploadname" => true,
)
);
$inputFilter->add($fileInput);
$this->setInputFilter($inputFilter);
}
}在控制器中验证表单后,可以使用
$form->getData()代码>
应该有一个键“file”,因为它是您命名的file元素。其中包含一个键“tmp_name”
这将是随机名称
例如:
公共函数uploadfileAction()
{
//获取表单和过滤器
$form=$this->getServiceLocator()->get('SomeModule\form\UploadFileForm');
$filter=$this->getServiceLocator()->get('SomeModule\Form\UploadFileFilter');
$form->setInputFilter($filter->getInputFilter());
如果($this->getRequest()->isPost()){
//将文件与post合并
$post=数组\合并\递归(
$this->getRequest()->getPost()->toArray(),
$this->getRequest()->getFiles()->toArray()
);
//在表单中设置数据
$form->setData($post);
//检查是否有效-表单数据现在将包含新名称
如果($form->isValid()){
变量转储($form->getData());
}
}
}
生成的阵列转储可能如下所示:
数组(13){
[“文件”]=>
阵列(5){
[“名称”]=>
字符串(14)“一些pdf.pdf”
[“类型”]=>
字符串(24)“应用程序/pdf”
[“tmp_名称”]=>
字符串(46)“/public/tmpuploads/new randoming name.pdf”
[“错误”]=>
int(0)
[“大小”]=>
内部(651264)
}
[“提交”]=>
字符串(6)“提交”
[“csrf”]=>
串(32)“4df771bb2fb14e28992a408583745946”
}
然后,您可以执行以下操作:
$formData=$form->getData();
$fileNewLocation=$formData['file']['tmp_name'];
//使用$fileNewLocation执行所需操作