Beispiel #1
0
 public function uploadImagesAction()
 {
     if (!WM_Users::allow('create', $this->getRequest()->getController())) {
         $this->forward('error', 'noPermission');
     }
     $gallery_id = (int) $this->getRequest()->getRequest('id');
     $page_info = Model_Pages::getPage($gallery_id);
     $image = $this->getRequest()->getFile('Filedata');
     if (!$image && $this->view->error) {
         $this->view->error = $this->translate('Invalid file');
     }
     if ($page_info) {
         $gallery_path = '/gallery/' . date("Y/m/", strtotime($page_info['date_added']));
     } else {
         $gallery_path = '/temp/gallery/';
     }
     $upload_folder = realpath(BASE_PATH . '/uploads');
     $upload_folder .= $gallery_path;
     $upload = new JO_Upload();
     $upload->setFile($image)->setExtension(array('.jpg', '.jpeg', '.png', '.gif'))->setUploadDir($upload_folder);
     $new_name = md5(time() . serialize($image));
     if ($upload->upload($new_name)) {
         $info = $upload->getFileInfo();
         if ($info) {
             $file_path = $gallery_path . $info['name'];
             $data = array('gallery_id' => $gallery_id, 'image' => $file_path, 'controller' => 'pages');
             if ($page_info) {
                 $insert_id = Model_Gallery::createImage($data);
                 if ($insert_id) {
                     $model_images = new Helper_Images();
                     $this->view->id = $insert_id;
                     $this->view->thumb = $model_images->resize($file_path, 100, 100);
                     $this->view->image = $this->getRequest()->getBaseUrl() . 'uploads' . $file_path;
                 } else {
                     $this->view->error = $this->translate('There was an error record. Try Again ');
                     @unlink($upload_folder . $info['name']);
                 }
             } else {
                 $temporary_images = JO_Session::get('temporary_images');
                 if (!is_array($temporary_images)) {
                     $temporary_images = array();
                 }
                 $temporary_images[] = $data;
                 JO_Session::set('temporary_images', $temporary_images);
                 $model_images = new Helper_Images();
                 $this->view->id = count($temporary_images) - 1;
                 $model_images = new Helper_Images();
                 $this->view->thumb = $model_images->resize($file_path, 100, 100);
                 $this->view->image = $this->getRequest()->getBaseUrl() . 'uploads' . $file_path;
             }
         } else {
             $this->view->error = $this->translate('An unknown error');
         }
     } else {
         $this->view->error = $upload->getError();
     }
     $response = $this->getResponse();
     $response->addHeader('Cache-Control: no-cache, must-revalidate');
     $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $response->addHeader('Content-type: application/json');
     echo $this->renderScript('json');
 }