i try upload file zf2, file doesn't uploaded. form seems valid. there wrong code?
if upload image php move_uploaded_files
, work expected.
form:
class logouploadform extends form { public function init() { $this->add([ 'type' => 'file', 'name' => 'logo', 'attributes' => array( 'id' => 'logo-input' ), ]); } }
inputfilter:
class logoinputfilter extends inputfilter { public function init() { $this->add([ 'name' => 'logo', 'required' => true, 'filters' => [ [ 'name' => 'file\renameupload', 'options' => [ 'target' => './data/upload/', 'overwrite' => true, 'randomize' => true, 'use_upload_extension' => true, ] ] ], 'validators' => [ [ 'name' => 'file\mimetype', 'options' => [ 'magicfile' => false, //important: https://github.com/zendframework/zf2/issues/6493 'mimetype' => ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'] ] ], [ 'name' => 'file\uploadfile', ], [ 'name' => 'file\size', 'options' => [ 'max' => '4mb' ] ] ] ]); } }
controller:
class logocontroller extends abstractactioncontroller { public function uploadaction() { $form = $this->logouploadform; $request = $this->getrequest(); if ($request->ispost()) { $form->setdata(array_merge_recursive( $request->getpost()->toarray(), $request->getfiles()->toarray() )); if ($form->isvalid()) { exit('valid'); } else { exit('invalid'); } } } }
you should call in view prepare function before form opentag function:
$form->prepare(); echo $this->form()->opentag($form);
the form detect, @ moment call prepare function, proper form encoding type used.
Comments
Post a Comment