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'])); }
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); }
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)); }
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); }
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; }
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); }
/** * * @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(""); }
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; }