/** * * @return Ambigous <\Zend\View\Model\ViewModel, \Zend\View\Model\ViewModel> */ public function uploadcreativeAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $creatives_dir = 'public/creatives/' . $this->auth->getUserID() . '/'; if (!file_exists($creatives_dir)) { mkdir($creatives_dir, 0755, true); } $site_url = $this->config_handle['delivery']['site_url']; if (substr($site_url, -1) == '/') { $site_url = substr($site_url, 0, -1); } $files = $this->request->getFiles()->toArray(); $httpadapter = new \Zend\File\Transfer\Adapter\Http(); $filesize = new \Zend\Validator\File\Size(array('max' => 2000000)); //2MB $extension = new \Zend\Validator\File\Extension(array('extension' => array('jpg', 'jpeg', 'png', 'gif', 'swf'))); $httpadapter->setValidators(array($filesize, $extension), $files['file']['name']); $ext = pathinfo($files['file']['name'], PATHINFO_EXTENSION); $newName = md5(rand() . $files['file']['name']) . '.' . $ext; $httpadapter->addFilter('File\\Rename', array('target' => $creatives_dir . $newName, 'overwrite' => true)); if ($httpadapter->isValid()) { if ($httpadapter->receive($files['file']['name'])) { $httpadapter->getFilter('File\\Rename')->getFile(); $newfile = $httpadapter->getFileName(); header("Content-type: text/plain"); echo $site_url . substr($newfile, strlen('public')); exit; } } $error = array(); $dataError = $httpadapter->getMessages(); foreach ($dataError as $key => $row) { $error[] = $row; } http_response_code(400); header("Content-type: text/plain"); echo implode(',', $error); exit; }