php - ZF2 file upload doesn't work -


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