Esempio n. 1
0
 public function uploadFile($field_name, $destination)
 {
     $resultArr = array();
     $adapter = new \Zend\File\Transfer\Adapter\Http();
     $files = $adapter->getFileInfo();
     $postFileName = $field_name;
     $File = $files[$postFileName];
     $fileinfo = $this->getFileInfo($File['name']);
     $this->randString = $this->getRandomName('5') . time();
     $newname = $this->randString . '.' . $fileinfo['ext'];
     $adapter->addFilter('Rename', array('target' => $destination . '/' . $newname, 'overwrite' => false), $postFileName);
     if (!$adapter->isValid()) {
         $resultArr = array("errorMessage" => $adapter->getMessages(), "status" => "failure");
     } else {
         try {
             $adapter->receive($postFileName);
             $resultArr = array("status" => "success", "uniqueName" => $newname, "fileName" => $File['name'], "extension" => $fileinfo['ext'], "mimeType" => $adapter->getMimeType(), "fileSize" => $adapter->getFileSize());
         } catch (\Zend\Filter\Exception\InvalidArgumentException $e) {
             $resultArr = array("errorMessage" => $e->getMessage(), "status" => "failure");
         }
     }
     return $resultArr;
 }
 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("");
 }