public function executeUpload() { $upload_max_filesize = str_replace('M', '', ini_get('upload_max_filesize')); $res = new \AjaxResponse(); $postId = $this->request()->post('post_id'); $upload_dir = PUBLIC_DIR . '/media/post_img/'; Folder::create($upload_dir, 0777); $error = array(); $fileUploader = new Uploader($upload_dir, 'file_upload'); $fileUploader->setMaximumFileSize($upload_max_filesize); $fileUploader->setFilterType('.jpg, .jpeg, .png, .bmp, .gif'); $fileUploader->setIsEncryptFileName(true); if ($fileUploader->upload('upload_images')) { $data = $fileUploader->getData(); $filePath = '/media/post_img/' . $data['file_name']; $fileUrl = $this->document()->getBaseUrl() . '/../' . $filePath; $otherImages = \PostPeer::getPostImg($postId); $ordering = sizeof($otherImages); foreach ($otherImages as $image) { if ($image->getOrdering() > $ordering) { $ordering = $image->getOrdering(); } } $ordering++; $postImg = new \PostImages(); $postImg->setPath($filePath); $postImg->setPostId($postId); $postImg->setOrdering($ordering); if (!\PostPeer::getPostMainImg($postId)) { $postImg->setIsMain(true); } if ($postImg->save()) { $res->type = \AjaxResponse::SUCCESS; $t = $postImg->toArray(); $t['thumb_url'] = $postImg->getThumbs(96, 96); $t['url'] = $postImg->getUrl(); $res->postImage = $t; return $this->renderText($res->toString()); } else { foreach ($postImg->getValidationFailures() as $validationFailure) { $error[$validationFailure->getColumn()] = $validationFailure->getMessage(); } } } else { $error['upload'] = $fileUploader->getError(); } $res->type = \AjaxResponse::ERROR; $res->error = $error; return $this->renderText($res->toString()); }