public function addAction()
 {
     $auth = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService');
     if (!$auth->hasIdentity()) {
         return $this->redirect()->toRoute('home');
     }
     $form = new CategoryForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new CategoryFilter());
         $form->setData($request->getPost());
         $files = $request->getFiles()->toArray();
         $httpadapter = new \Zend\File\Transfer\Adapter\Http();
         $filesize = new \Zend\Validator\File\Size(array('min' => 2000));
         //1KB
         $extension = new \Zend\Validator\File\Extension(array('extension' => array('png', 'jpg')));
         $httpadapter->setValidators(array($filesize, $extension), $files['ctgr_image_filename']['name']);
         if ($httpadapter->isValid()) {
             $route = $httpadapter->setDestination('public/uploads/');
             if ($httpadapter->receive($files['ctgr_image_filename']['name'])) {
                 $newfile = $httpadapter->getFileName();
             }
         }
         if ($form->isValid()) {
             $data = $form->getData();
             $data['ctgr_image_filename'] = $data['ctgr_image_filename']['name'];
             unset($data['submit']);
             $this->getCategoriesTable()->insert($data);
             return $this->redirect()->toRoute('cms/default', array('controller' => 'category', 'action' => 'index'));
         }
     }
     return new ViewModel(array('form' => $form));
 }
 /**
  * Add new comment attachment into database and uploads
  *
  * @author Coeus
  * @param $data
  * @return JsonModel
  */
 public function create($data = array())
 {
     //$attachmentPath = 'public' . DIRECTORY_SEPARATOR . 'attachments'.DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
     $attachmentPath = 'public/attachments/comments/';
     $attachmentName = md5(uniqid(null, true));
     $adapter = new \Zend\File\Transfer\Adapter\Http();
     if (!$adapter->isValid()) {
         $dataError = $adapter->getMessages();
         $error = array();
         foreach ($dataError as $key => $row) {
             $error[] = $row;
         }
     } else {
         if (!is_dir($attachmentPath)) {
             mkdir($attachmentPath, 0766);
         }
         $adapter->setDestination($attachmentPath);
         $name = $adapter->getFileName(null, false);
         $extension = end(explode(".", $name));
         $newFilePath = $attachmentPath . $attachmentName . "." . $extension;
         $newName = $attachmentName . "." . $extension;
         $adapter->addFilter('Rename', array('target' => $newFilePath, 'overwrite' => true));
         $adapter->receive();
         if (isset($data['post_id'])) {
             $data['info'] = $data['post_id'] . '||' . $data['user_id'] . '||' . $data['post_owner_id'] . '||' . $data['resource_type'] . '||' . $data['resource_id'];
             $comment = $this->getCommentService()->addTimelineComment($data);
         } else {
             $data['info'] = $data['resource_id'] . '||' . $data['user_id'];
             //$data['content'] = $data['content'].'<a ng-click="openInBrowserTab('.$newName.');" href="javascript:void(0);"><i>'.$name.'</a></i>';
             $comment = $this->getCommentService()->addResourceComment($data, $data['resource_type']);
         }
         $attachmentId = $this->getService()->addCommentAttachment(array('comment_id' => $comment['comment_id'], 'file' => $name . ',' . $newName));
     }
     return new JsonModel(array('original_name' => $name, 'altered_name' => $newName, 'comment_id' => $comment['comment_id']));
 }
Esempio n. 3
0
 public function pdfAction()
 {
     try {
         $path_start = PUBLIC_PATH . self::PDF_UPLOAD_DIR;
         $url_start = self::PDF_UPLOAD_DIR;
         $request = $this->getRequest();
         if ($request->isPost()) {
             $adapter = new \Zend\File\Transfer\Adapter\Http();
             $adapter->setDestination($path_start);
             $filesize = new \Zend\Validator\File\Size(array('max' => 10000000));
             // 10MB
             $extension = new \Zend\Validator\File\Extension(array('extension' => array('pdf')));
             foreach ($adapter->getFileInfo() as $file => $info) {
                 $name = $adapter->getFileName($file);
                 $ext = "." . pathinfo($name, PATHINFO_EXTENSION);
                 $adapter->setValidators(array($filesize, $extension), $info['name']);
                 $name_without_ext = time() . '_' . strtolower(HashGenerator::generate(6));
                 $pdfDefault = array("PATH" => $path_start . $name_without_ext . $ext, "URL" => $url_start . $name_without_ext . $ext);
                 $adapter->addFilter(new \Zend\Filter\File\Rename(array('target' => $pdfDefault['PATH'], 'overwrite' => true)), null, $file);
                 if ($adapter->isValid()) {
                     $adapter->receive($info['name']);
                 } else {
                     return new JsonModel(array('returnCode' => 201, 'msg' => "Allowed only pdf files (max 10MB)."));
                 }
             }
         }
         return new JsonModel(array('returnCode' => 101, 'result' => array('url' => $pdfDefault['URL']), 'msg' => 'Image has been uploaded.'));
     } catch (\Exception $e) {
         return new JsonModel(array('returnCode' => 201, 'msg' => $e->getMessage()));
     }
 }
 /**
  * Add new company logo
  * 
  * @author Stoyan Rangelov
  * @param array $data the data from REST Client
  * @return \Zend\View\Model\JsonModel 
  */
 public function create($data = array())
 {
     $tmpPath = 'public' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'logos' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
     $attachmentPath = 'public' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'logos' . DIRECTORY_SEPARATOR;
     $attachmentName = md5(uniqid(null, true));
     $companyStatus = $data['company_status'];
     if ($companyStatus == 'new') {
         $adapter = new \Zend\File\Transfer\Adapter\Http();
         if (!$adapter->isValid()) {
             $dataError = $adapter->getMessages();
             $error = array();
             foreach ($dataError as $key => $row) {
                 $error[] = $row;
             }
         } else {
             $adapter->setDestination($tmpPath);
             $name = $adapter->getFileName(null, false);
             $extension = end(explode(".", $name));
             $newFilePath = $tmpPath . $attachmentName . "." . $extension;
             $newName = $attachmentName . "." . $extension;
             $adapter->addFilter('Rename', array('target' => $newFilePath, 'overwrite' => true));
             $adapter->receive();
         }
         return new JsonModel(array('original_name' => $name, 'altered_name' => $newName, 'status_code' => 200));
     } else {
         $adapter = new \Zend\File\Transfer\Adapter\Http();
         if (!$adapter->isValid()) {
             $dataError = $adapter->getMessages();
             $error = array();
             foreach ($dataError as $key => $row) {
                 $error[] = $row;
             }
         } else {
             $adapter->setDestination($attachmentPath);
             $name = $adapter->getFileName(null, false);
             $extension = end(explode(".", $name));
             $newFilePath = $attachmentPath . $attachmentName . "." . $extension;
             $newName = $attachmentName . "." . $extension;
             $adapter->addFilter('Rename', array('target' => $newFilePath, 'overwrite' => true));
             $adapter->receive();
         }
         $result = $this->getService()->addCompanyLogo($data, $newName);
         return new JsonModel($result);
     }
 }
 public function uploadCsvFile2Db($uploadCsvFile, $database)
 {
     // move file to target dir
     $targetDir = $this->moduleOptions->getContactUploadedCsvDir();
     $uploadCsvFileArray = $uploadCsvFile->toArray();
     $uploadElementName = key($uploadCsvFileArray);
     $csvFileName = $uploadCsvFileArray[$uploadElementName]['name'];
     $csvFileInfo = pathinfo($csvFileName);
     $now = new \DateTime();
     $receiver = new \Zend\File\Transfer\Adapter\Http();
     $receiver->setDestination($targetDir)->setFilters([new \Zend\Filter\File\Rename(["target" => $targetDir . '/uploaded_csv_' . $now->format('Y_m_d-H:i') . '_' . '.' . $csvFileInfo['extension'], "randomize" => true])]);
     $receiver->receive($uploadElementName);
     $newCsvFilePath = $receiver->getFileName($uploadElementName);
     // transform CSV file to array
     $contactsArray = $this->csvFile2Array($newCsvFilePath);
     // save array to databse
     $this->runProcessSave2Database($database, $contactsArray);
 }
Esempio n. 6
0
 public function index01Action()
 {
     if ($this->request->isPost()) {
         $upload = new \Zend\File\Transfer\Adapter\Http();
         $info = $upload->getFileInfo("image");
         $name = $upload->getFileName("image");
         $size = $upload->getFileSize("image");
         // echo "<pre style='font-weight:bold'>";
         // print_r($info);
         // echo "</pre>";
         // echo "<pre style='font-weight:bold'>";
         // print_r($name);
         // echo "</pre>";
         // echo "<pre style='font-weight:bold'>";
         // print_r($size);
         // echo "</pre>";
         $upload->setDestination(FILES_PATH . "images", "image");
         $upload->setDestination(FILES_PATH . "zip", "zip");
         $upload->receive("image");
     }
 }
 /**
  * Add new task into database
  *
  * @author Hrayr Shahbazyan
  * @param null $data
  * @return JsonModel
  */
 public function create($data = array())
 {
     $attachmentPath = 'public' . DIRECTORY_SEPARATOR . 'attachments' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
     $attachmentName = md5(uniqid(null, true));
     $adapter = new \Zend\File\Transfer\Adapter\Http();
     if (!$adapter->isValid()) {
         $dataError = $adapter->getMessages();
         $error = array();
         foreach ($dataError as $key => $row) {
             $error[] = $row;
         }
     } else {
         $adapter->setDestination($attachmentPath);
         $name = $adapter->getFileName(null, false);
         $extension = end(explode(".", $name));
         $newFilePath = $attachmentPath . $attachmentName . "." . $extension;
         $newName = $attachmentName . "." . $extension;
         $adapter->addFilter('Rename', array('target' => $newFilePath, 'overwrite' => true));
         $adapter->receive();
         //$attachmentId = $this->getService()->addTaskAttachment(array('task_id'=>$data['task_id'],'file'=>$name));
     }
     return new JsonModel(array('original_name' => $name, 'altered_name' => $newName));
 }
Esempio n. 8
0
 public function addAction()
 {
     $entityManager = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
     $article = new Article();
     $form = $this->getForm($article, $entityManager, 'Add');
     $form->bind($article);
     $form->get('language')->setAttribute('class', 'browser-default');
     $form->get('resource')->setAttribute('class', 'browser-default');
     $form->get('categories')->setAttributes(array('class' => 'browser-default', 'style' => 'height:100px'));
     $form->get('tags')->setAttributes(array('class' => 'browser-default', 'style' => 'height:100px'));
     $request = $this->getRequest();
     if ($request->isPost()) {
         $files = $request->getFiles()->toArray();
         $httpadapter = new \Zend\File\Transfer\Adapter\Http();
         $filesize = new \Zend\Validator\File\Size(array('min' => 1000));
         //1KB
         $extension = new \Zend\Validator\File\Extension(array('extension' => array('png')));
         $httpadapter->setValidators(array($filesize, $extension), $files['art_image_filename']['name']);
         if ($httpadapter->isValid()) {
             $route = $httpadapter->setDestination('public/article/');
             if ($httpadapter->receive($files['art_image_filename']['name'])) {
                 $newfile = $httpadapter->getFileName();
             }
         }
         $post = $request->getPost();
         $form->setData($post);
         if ($form->isValid()) {
             $data = $form->getData();
             $article->setArtcImageFilename($files['art_image_filename']['name']);
             $this->prepareData($article);
             $entityManager->persist($article);
             $entityManager->flush();
             return $this->redirect()->toRoute('cms/default', array('controller' => 'index', 'action' => 'index'));
         }
     }
     return new ViewModel(array('form' => $form));
 }
 /**
  * Add new user avatar
  * 
  * @author Stoyan Rangelov
  * @param array $data the data from REST Client
  * @return \Zend\View\Model\JsonModel 
  */
 public function create($data = array())
 {
     $attachmentPath = 'public' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'avatars' . DIRECTORY_SEPARATOR;
     $attachmentName = md5(uniqid(null, true));
     $adapter = new \Zend\File\Transfer\Adapter\Http();
     if (!$adapter->isValid()) {
         $dataError = $adapter->getMessages();
         $error = array();
         foreach ($dataError as $key => $row) {
             $error[] = $row;
         }
     } else {
         $adapter->setDestination($attachmentPath);
         $name = $adapter->getFileName(null, false);
         $extension = end(explode(".", $name));
         $newFilePath = $attachmentPath . $attachmentName . "." . $extension;
         $newName = $attachmentName . "." . $extension;
         $adapter->addFilter('Rename', array('target' => $newFilePath, 'overwrite' => true));
         $adapter->receive();
     }
     $userId = $data['user_id'];
     $result = $this->getService()->addUserAvatar($userId, $newName);
     return new JsonModel($result);
 }
Esempio n. 10
0
 public function egresotrabajadorfileAction()
 {
     //Obtenemos id bbdd
     $sid = new Container('base');
     $id_db = $sid->offsetGet('id_db');
     //Guardamos Registro en Servidor
     $File = $this->params()->fromFiles('nombrefile');
     $adapterFile = new \Zend\File\Transfer\Adapter\Http();
     $nombre = $adapterFile->getFileName($File, false);
     $ruta = $_SERVER['DOCUMENT_ROOT'] . '/files/db/' . $id_db . '/admin/finanzas/egreso';
     //Validamos si existe el archivo
     if (file_exists($ruta . "/" . $nombre)) {
         $status = "nok";
         $desc = "Nombre de Archivo ya existe en el servidor, use otro nombre";
     } else {
         $status = "ok";
         $adapterFile->setDestination($ruta);
         $adapterFile->receive($File['name']);
         $nombre = $adapterFile->getFileName($File, false);
         $desc = "Archivo cargado Exitosamente";
     }
     //Retornamos a la vista
     $result = new JsonModel(array('status' => $status, 'desc' => $desc, 'name' => $nombre));
     return $result;
 }
Esempio n. 11
0
 public function saveImage($file, $id)
 {
     $httpadapter = new \Zend\File\Transfer\Adapter\Http();
     if ($httpadapter->isValid()) {
         $pathdir = 'public/uploads/portfolio/' . $id;
         if (!is_dir($pathdir)) {
             mkdir($pathdir);
         }
         $httpadapter->setDestination($pathdir);
         foreach ($httpadapter->getFileInfo() as $info) {
             $httpadapter->addFilter('File\\Rename', array('target' => $httpadapter->getDestination() . '/' . str_replace(' ', '_', $file['file']['name']), 'overwrite' => true, 'randomize' => false));
             if ($httpadapter->receive($info['name'])) {
                 $newfile = $httpadapter->getFileName();
                 return str_replace('\\', '/', $newfile);
             }
         }
     }
 }
 public function editHomeworkAction()
 {
     $auth = new AuthenticationService();
     $user = $auth->getIdentity();
     $id = $this->params()->fromRoute('id');
     $homework = $this->getHomeworkTable()->getHomework($id);
     $form = new HomeworkForm();
     $form->bind($homework);
     $form->get('submit')->setAttribute('value', 'Muuda');
     $form->get('id')->setValue($id);
     $form->get('user_id')->setValue($user->id);
     $form->get('subsubject_id')->setValue($homework->subsubject_id);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new HomeworkFilter($this->getServiceLocator()));
         $post = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getFiles()->toArray());
         $form->setData($post);
         if ($form->isValid()) {
             $adapter = new \Zend\File\Transfer\Adapter\Http();
             if (!$adapter->isValid()) {
                 $error = array();
                 foreach ($adapter->getMessages() as $key => $row) {
                     $error[] = $row;
                 }
                 $form->setMessages(array('fileupload' => $error));
             } else {
                 $adapter->setDestination($this->getServiceLocator()->get('Config')['homework_dir']);
                 if ($adapter->receive()) {
                     $event = $this->getEvent();
                     $request = $event->getRequest();
                     $router = $event->getRouter();
                     $uri = $router->getRequestUri();
                     $baseUrl = sprintf('%s://%s%s', $uri->getScheme(), $uri->getHost(), $request->getBaseUrl());
                     $adapterFileName = $adapter->getFileName();
                     $filesName = $baseUrl . '/uploads/homework/' . substr(preg_replace('/\\.\\/public\\/uploads\\/homework/', '', $adapter->getFileName()), 1);
                     $post['url'] = $filesName;
                     $homework->exchangeArray($post);
                     $this->getHomeworkTable()->saveHomework($homework);
                     return $this->redirect()->toRoute('teacher/my-course');
                 }
             }
         }
     }
     return array('form' => $form, 'id' => $id, 'homework' => $homework);
 }
Esempio n. 13
0
 /**
  *
  * @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;
 }
 public function importCsvFile($filePath, $database)
 {
     // get dir for uploaded csv
     $targetDir = $this->moduleOptions->getContactUploadedCsvDir();
     // transfer uploded file
     $now = new \DateTime();
     $fileInfo = pathinfo($filePath);
     $receiver = new \Zend\File\Transfer\Adapter\Http();
     $receiver->setDestination($targetDir)->setFilters([new \Zend\Filter\File\Rename(["target" => $targetDir . '/uploaded_csv_' . $now->format('Y_m_d-H:i') . '_' . '.' . $fileInfo['extension'], "randomize" => true])]);
     // file upload element in form class should have name 'csv-file' !! TODO: fix this dependency
     $receiver->receive('csv-file');
     $uploadedCsvFilePath = $receiver->getFileName('csv-file');
     // detect delimiter for csv
     $delimiter = self::detectCsvFileDelimiter($uploadedCsvFilePath);
     // convert file to array
     $contactsArray = file($uploadedCsvFilePath);
     // get titles of columns and transform
     $columnNames = str_getcsv($contactsArray[0], $delimiter);
     array_walk($columnNames, function (&$item) {
         $item = str_replace(" ", "-", $item);
         $item = strtolower($item);
     });
     foreach ($contactsArray as $key => $contact) {
         // get CSV line by line
         $contact = str_getcsv($contact, $delimiter);
         // change keys in array to column names
         $contact = array_combine($columnNames, $contact);
         // detect Windows-1251 ecoding and change to UTF-8
         array_walk($contact, function (&$item) {
             $encoding = mb_detect_encoding($item, array('UTF-8', 'Windows-1251', 'KOI8-R'));
             // if(mb_check_encoding($item, 'CP1251')){
             //     $item = iconv('CP1251', 'UTF-8', $item);
             // }
             if ($encoding !== 'UTF-8') {
                 $item = iconv('CP1251', 'UTF-8', $item);
             }
             $item = \VisoftBaseModule\Service\ForceUTF8\Encoding::toUTF8($item);
             // if(mb_check_encoding($item, 'CP1251')){
             //     $item = iconv('CP1251', 'UTF-8', $item);
             // }
         });
         // rewrite current element to new one
         $contactsArray[$key] = $contact;
     }
     // remove column header
     array_shift($contactsArray);
     // debug array
     // var_dump($contactsArray);
     // die('11122');
     // save contacts to database
     $this->contactService->enter($database, $contactsArray);
 }
 public function ajaxUploadFileAction()
 {
     //load the form
     $form = $this->getFrontProfileFileManagerModel()->getFileUploadForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         //get file
         $files = $request->getFiles()->toArray();
         $form->remove("tmp_file");
         $form->remove("mode");
         $form->remove("filename");
         $arr_post_data = $request->getPost();
         $arr_post_data["mode"] = "image";
         $arr_post_data["additional_path"] = "";
         $form->setData($arr_post_data);
         if ($form->isValid($request->getPost())) {
             //extract form data
             $arr_data = $form->getData();
             //clear file name, it is derived from the uploaded data
             $arr_data["filename"] = "";
             if ($files) {
                 $httpadapter = new \Zend\File\Transfer\Adapter\Http();
                 $filesize = new \Zend\Validator\File\Size(array('min' => 1, 'max' => 1000000));
                 $extension = new \Zend\Validator\File\Extension(array('extension' => array('jpg', 'png', 'gif', 'jpeg', 'pdf', 'csv', 'xls', 'xlsx', 'csv', 'docx', 'txt', 'js', 'css', 'html'), "options" => array("messages" => array(\Zend\Validator\File\Extension::FALSE_EXTENSION => "File is not valid", \Zend\Validator\File\Extension::NOT_FOUND => "File could not be found"))));
                 $httpadapter->setValidators(array($filesize, $extension), $files['file']['name']);
                 if ($httpadapter->isValid()) {
                     //set uploads path
                     $uploads_path = "./data/tmp/uploads";
                     if (!is_dir($uploads_path)) {
                         mkdir($uploads_path, 0755, TRUE);
                     }
                     //end if
                     $httpadapter->setDestination($uploads_path);
                     if ($httpadapter->receive($files['file']['name'])) {
                         $newfile = $httpadapter->getFileName();
                         //set form data
                         $arr_t = explode("/", $newfile);
                         if (!isset($arr_data["filename"]) || $arr_data["filename"] == "") {
                             $f = array_pop($arr_t);
                             $f = preg_replace('/[^a-zA-Z0-9_.]/', '', $f);
                             if ($f == "") {
                                 $f = time();
                             }
                             //end if
                             $arr_data["filename"] = $f;
                         }
                         //end if
                         $arr_data["url"] = "";
                         $arr_data["data"] = base64_encode(file_get_contents($newfile));
                         //determine mode from file uploaded
                         if (is_array(getimagesize($newfile))) {
                             $arr_data["mode"] = "image";
                         } else {
                             $arr_data["mode"] = "document";
                         }
                         //end if
                         //remove local file
                         unlink($newfile);
                     }
                     //end if
                 } else {
                     //file validation failed
                     echo json_encode(array("error" => 1, "response" => "File validation failed. File could not be uploaded: " . implode(",", $httpadapter->getMessages())), JSON_FORCE_OBJECT);
                     exit;
                 }
                 //end if
             }
             //end if
             try {
                 $this->getFrontProfileFileManagerModel()->uploadFile($arr_data["mode"], $arr_data);
                 //set message
                 echo json_encode(array("error" => 0, "response" => "File uploaded"), JSON_FORCE_OBJECT);
                 exit;
             } catch (\Exception $e) {
                 $arr_t = explode("||", $e->getMessage());
                 $obj = json_decode(array_pop($arr_t));
                 $arr_t = explode(":", $obj->HTTP_RESPONSE_MESSAGE);
                 echo json_encode(array("error" => 1, "response" => array_pop($arr_t)), JSON_FORCE_OBJECT);
                 exit;
             }
             //end catch
         } else {
             //form validation failed
             $r = "Form validation failed";
             echo json_encode(array("error" => 1, "response" => $r), JSON_FORCE_OBJECT);
             exit;
         }
         //end if
     }
     //end if
     echo json_encode(array("error" => 1, "response" => "AJAX request needs to be POST"), JSON_FORCE_OBJECT);
     exit;
     exit;
 }
 public function addHomeworkAnswerAction()
 {
     $auth = new AuthenticationService();
     $user = $auth->getIdentity();
     $homeworkId = $this->params()->fromRoute('id');
     $form = new HomeworkAnswerForm();
     $form->get('homework_id')->setValue($homeworkId);
     $form->get('user_id')->setValue($user->id);
     $request = $this->getRequest();
     if ($request->isPost()) {
         $homeworkAnswer = new HomeworkAnswers();
         $post = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getFiles()->toArray());
         $form->setData($post);
         if ($form->isValid()) {
             $adapter = new \Zend\File\Transfer\Adapter\Http();
             if (!$adapter->isValid()) {
                 $error = array();
                 foreach ($adapter->getMessages() as $key => $row) {
                     $error[] = $row;
                 }
                 $form->setMessages(array('fileupload' => $error));
             } else {
                 $adapter->setDestination($this->getServiceLocator()->get('Config')['homework_dir']);
                 if ($adapter->receive()) {
                     $event = $this->getEvent();
                     $request = $event->getRequest();
                     $router = $event->getRouter();
                     $uri = $router->getRequestUri();
                     $baseUrl = sprintf('%s://%s%s', $uri->getScheme(), $uri->getHost(), $request->getBaseUrl());
                     $adapterFileName = $adapter->getFileName();
                     $filesName = $baseUrl . '/uploads/homework/' . substr(preg_replace('/\\.\\/public\\/uploads\\/homework/', '', $adapter->getFileName()), 1);
                     $post['url'] = $filesName;
                     $homeworkAnswer->exchangeArray($post);
                     $this->getHomeworkAnswersTable()->saveHomeworkAnswer($homeworkAnswer);
                     return $this->redirect()->toRoute('student/homework', array('id' => $homeworkId));
                     // tuleks midagi paremat välja mõelda
                 }
             }
         }
     }
     return array('form' => $form, 'id' => $homeworkId);
 }
 public function processjqueryAction()
 {
     $form = new \Users\Form\UploadJqueryForm();
     //        $form->setInputFilter(new \Users\Form\Filter\UploadJqueryFilter());
     $request = $this->getRequest();
     $response = $this->getResponse();
     $jsonModel = new \Zend\View\Model\JsonModel();
     try {
         if ($request->isPost()) {
             $data = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getFiles()->toArray());
             //                throw new \Exception(json_encode("data " . serialize($data)));
             $form->setData($data);
             if ($form->isValid()) {
                 $datas = [];
                 $datas['files'] = [];
                 $uploadPath = $this->getFileUploadLocation();
                 //                $uploadFiles    = $this->params()->fromFiles('files');
                 //                throw new \Exception(json_encode("FILES " . serialize($_FILES)));
                 // Сохранение выгруженного файла
                 $adapter = new \Zend\File\Transfer\Adapter\Http();
                 $adapter->setDestination($uploadPath);
                 $adapter->setValidators(array(new \Zend\Validator\File\Extension(array('extension' => array('jpg', 'jpeg', 'png', 'rtf')))));
                 //                    $adapter->setFilters(array(
                 //                        new \Zend\Filter\File\RenameUpload(array(
                 //                            'target'    => $uploadPath . '../tmpuploads/tmp',
                 //                            'randomize' => true,
                 //                                )
                 //                        )
                 //                    ));
                 if (!$adapter->isValid()) {
                     throw new \Exception(json_encode("!isValid " . implode(" ", $adapter->getMessages())));
                 }
                 $files = $adapter->getFileInfo();
                 //                throw new \Exception(json_encode($files));
                 foreach ($files as $file => $info) {
                     //                    throw new \Exception(json_encode($info));
                     $name = $adapter->getFileName($file);
                     // file uploaded & is valid
                     if (!$adapter->isUploaded($file)) {
                         throw new \Exception(json_encode("!isUploaded") . implode(" ", $adapter->getMessages()));
                         continue;
                     }
                     if (!$adapter->isValid($file)) {
                         throw new \Exception(json_encode("!isValid " . implode(" ", $adapter->getMessages())));
                         continue;
                     }
                     // receive the files into the user directory
                     $check = $adapter->receive($file);
                     // this has to be on top
                     if (!$check) {
                         throw new \Exception(json_encode("! receive" . implode(" ", $adapter->getMessages())));
                     }
                     /**
                     * "name": "picture1.jpg",
                      "size": 902604,
                      "url": "http:\/\/example.org\/files\/picture1.jpg",
                      "thumbnailUrl": "http:\/\/example.org\/files\/thumbnail\/picture1.jpg",
                      "deleteUrl": "http:\/\/example.org\/files\/picture1.jpg",
                      "deleteType": "DELETE"
                     */
                     $fileclass = new stdClass();
                     // we stripped out the image thumbnail for our purpose, primarily for security reasons
                     // you could add it back in here.
                     $fileclass->name = $name;
                     $fileclass->size = $adapter->getFileSize($name);
                     $fileclass->type = $adapter->getMimeType($name);
                     $fileclass->deleteUrl = '/uploads/delete';
                     $fileclass->deleteType = 'DELETE';
                     //$fileclass->error = 'null';
                     $fileclass->url = '/';
                     $datas['files'][] = $fileclass;
                 }
                 $response->getHeaders()->addHeaders(array('Pragma' => 'no-cache', 'Cache-Control' => 'private, no-cache', "Content-Type" => 'application/json'));
                 //                return $response->setContent(json_encode(array('files' => $files)));
                 return $response->setContent(json_encode($datas));
             } else {
                 throw new \Exception(json_encode("!isValid form" . serialize($form->getMessages())));
             }
         }
     } catch (\Exception $e) {
         return $response->setContent(json_encode($e->getMessage()));
     }
     return $jsonModel;
     //        if ($request->isPost()) {
     //                // Получение конфигурации из конфигурационных данных модуля
     //                $uploadPath = $this->getFileUploadLocation();
     //
     //                // Сохранение выгруженного файла
     //                $adapter = new \Zend\File\Transfer\Adapter\Http();
     //                $adapter->setDestination($uploadPath);
     //                if ($adapter->receive($uploadFile['name'])) {
     //
     //                    $userTable = $this->getServiceLocator()->get('UserTable');
     //                    $user      = $userTable->getUserByEmail($userEmail);
     //
     //                    $upload = new \Users\Model\Upload();
     //
     //                    // Успешная выгрузка файла
     //                    $exchange_data             = array();
     //                    $exchange_data['label']    = $request->getPost()->get('label');
     //                    $exchange_data['filename'] = $uploadFile['name'];
     //                    $exchange_data['user_id']  = $user->getId();
     //                    $upload->exchangeArray($exchange_data);
     //
     //                    $uploadTable = $this->getServiceLocator()->get('UploadTable');
     //                    $uploadTable->save($upload);
     //                    $upload->setId($uploadTable->getLastInsertValue());
     //
     //                    //добавить в Lucene
     //                    $searchIndexLocation = $this->getIndexLocation();
     //                    $index               = Lucene\Lucene::create($searchIndexLocation);
     //
     //                    // создание полей lucene
     //                    $fileUploadId = Document\Field::unIndexed(
     //                                    'upload_id', $upload->getId());
     //                    $label        = Document\Field::Text('label', $upload->getLabel());
     //                    $owner        = Document\Field::Text('owner', $user->getName());
     //
     //                    $uploadPath = $this->getFileUploadLocation();
     //                    $fileName   = $upload->getFilename();
     //                    $filePath   = $uploadPath . DIRECTORY_SEPARATOR . $fileName;
     //
     //                    if (substr_compare($fileName, ".xlsx", strlen($fileName) -
     //                                    strlen(".xlsx"), strlen(".xlsx")) === 0) {
     //                        // Индексирование таблицы excel
     //                        $indexDoc = Lucene\Document\Xlsx::loadXlsxFile($filePath);
     //                    } else if (substr_compare($fileName, ".docx", strlen($fileName) -
     //                                    strlen(".docx"), strlen(".docx")) === 0) {
     //                        // Индексирование документа Word
     //                        $indexDoc = Lucene\Document\Docx::loadDocxFile($filePath);
     //                    } else {
     //                        $indexDoc = new Lucene\Document();
     //                    }
     //
     //                    // создание нового документа и добавление всех полей
     //                    $indexDoc = new Lucene\Document();
     //                    $indexDoc->addField($label);
     //                    $indexDoc->addField($owner);
     //                    $indexDoc->addField($fileUploadId);
     //                    $index->addDocument($indexDoc);
     //
     //                    $index->commit();
     //                }
     //        }
     //        return $response->setContent("");
 }
Esempio n. 18
0
 public function newAction()
 {
     $this->log = $this->getServiceLocator()->get('log');
     $log = $this->log;
     $log->info("new form");
     $view = new ViewModel();
     $form = new PixForm();
     // 2015-09-10
     // 2Do: Check to see that user is logged in
     if (!$this->getAuthService()->hasIdentity()) {
         return $this->redirect()->toUrl('http://www.newhollandpress.com/pix/index');
     }
     // 2Do: Populate username with user's username
     $userSession = new Container('user');
     $this->username = $userSession->username;
     $log->info($this->username);
     // 2Do: Implement Calendar Widget in Javascript for date and fix validation
     $form->get('submit')->setValue('Add');
     $pix = new Pix();
     $form->bind($pix);
     $form->get('username')->setValue($this->username);
     $request = $this->getRequest();
     //$log->info($request);
     if ($request->isPost()) {
         $em = $this->getEntityManager();
         $inputFilter = $pix->getInputFilter();
         $form->setInputFilter($inputFilter);
         $form->setData($request->getPost());
         $log->info(print_r($request->getPost(), true));
         if ($form->isValid()) {
             $post = $request->getPost();
             $log->info($request);
             $log->info(print_r($post, true));
             $pix->exchangeArray($post);
             $log->info("data exchanged");
             $files = $request->getFiles();
             //$log->info($files);
             //die();
             //$log->info(print_r($form->getData(),true));
             /* Untested code to upload pix 
              * https://samsonasik.wordpress.com/2012/08/31/zend-framework-2-creating-upload-form-file-validation/
              */
             //$filename = $post['picture'];
             $size = new Size(array('min' => 1000));
             $extension = new Extension(array('extension' => array('jpg')));
             $adapter = new \Zend\File\Transfer\Adapter\Http();
             $log->info("is valid!");
             $log->info(print_r($files, true));
             $fileDestinationRoot = "/var/www/html/uploads/";
             $fileDestination = $fileDestinationRoot . $this->username;
             $pixSubPath = "pix";
             $fileDestination .= "/";
             $fileDestination .= $pixSubPath;
             $fileDestination .= "/";
             $adapter->setDestination($fileDestination);
             if ($adapter->receive($files['files']['name'])) {
                 $newfile = $adapter->getFileName();
                 $log->info($newfile);
                 $expandFile = explode('/', $newfile);
                 $expandFileCount = count($expandFile) - 1;
                 $log->info(print_r($expandFile[$expandFileCount], true));
                 $pixFileName = $expandFile[$expandFileCount];
             }
             $dataArray = $form->getData();
             $log->info(print_r($dataArray, true));
             $dataArray->setPicture($pixFileName);
             //$em->persist($form->getData());
             $em->persist($dataArray);
             $log->info("persisted");
             $em->flush();
             $log->info("flushed");
             return $this->redirect()->toUrl('http://www.newhollandpress.com/pix/index');
         }
     }
     $view->form = $form;
     return $view;
 }