public function addAction() { if (!$this->zfcUserAuthentication()->hasIdentity()) { return $this->redirect()->toRoute('zfcuser'); } $form = new UploadForm(); $optionSubject = $this->getSubjectTable()->getSubjectsForSelect(); $form->get('subject')->setAttribute('options', $optionSubject); $optionCategory = $this->getCategoryTable()->getCategoriesForSelect(); $form->get('category')->setAttribute('options', $optionCategory); $request = $this->getRequest(); if ($request->isPost()) { $file = new File(); $data = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getFiles()->toArray()); $form->setData($data); $uploadPath = $this->getOptions()->getUploadFolderPath(); // Validatoren $size = new Size(array('max' => $this->getOptions()->getMaxFileSizeInByte())); $extension = new Extension($this->getOptions()->getAllowedFileExtensions()); // Filter für Zufallsnamen if ($this->options->getRandomizeFileName()) { $rename = new Rename(array('target' => $uploadPath . '/file', 'randomize' => true)); } else { $rename = null; } //TODO Add to factory $adapter = new Http(); $adapter->setValidators(array($size, $extension)); $adapter->setFilters(array($rename)); if (!$adapter->isValid()) { $dataError = $adapter->getMessages(); array_merge($dataError, $adapter->getErrors()); foreach ($dataError as $key => $row) { echo $row; } header('HTTP/1.1 500 Internal Server Error'); exit; } else { $adapter->setDestination($uploadPath); if ($adapter->receive()) { $subjectID = $data['subject']; $categoryID = $data['category']; $dbdata = array(); $dbdata['fileName'] = $data['file']['name']; $filename = $adapter->getFileName(); if (is_array($filename)) { $dbdata['url'] = basename(current($filename)); } else { $dbdata['url'] = basename($filename); } $file->exchangeArray($dbdata); $this->getFileTable()->saveFile($file, $subjectID, $categoryID); header('HTTP/1.1 200 OK'); exit; } } } return array('form' => $form); }
public function restPostFile() { $this->getServiceLocator()->get('Application')->getEventManager()->attach(\Zend\Mvc\MvcEvent::EVENT_RENDER, function ($event) { $event->getResponse()->getHeaders()->addHeaderLine('Content-Type', 'text/plain'); }, -10000); $postData = $this->params()->fromPost(); $form = new Form\UploadForm(); $form->bind($postData); $itemModel = Api::_()->getModel('File\\Model\\File'); $response = array(); if ($form->isValid() && $form->getFileTransfer()->isUploaded()) { if ($form->getFileTransfer()->receive()) { $files = $form->getFileTransfer()->getFileInfo(); $itemModel->setUploadFiles($files); $itemModel->setConfigKey('default')->createFiles(); $lastFileId = $itemModel->getLastFileId(); if ($lastFileId) { $item = $itemModel->getFile($lastFileId, array('self' => array('*', 'getUrl()', 'getThumb()'))); $file = array('id' => $item['id'], 'name' => $item['originalName'], 'size' => (int) $item['fileSize'], 'url' => $item['Url'], 'thumbnail_url' => $item['Thumb'], 'delete_type' => 'DELETE', 'delete_url' => '/api/file/' . $item['id']); $response = array($file); } } } else { } return new JsonModel($response); }
public function restPostFile() { $postData = $this->params()->fromPost(); $form = new Form\UploadForm(); $form->bind($postData); $itemModel = Api::_()->getModel('File\\Model\\File'); if ($form->isValid() && $form->getFileTransfer()->isUploaded()) { if ($form->getFileTransfer()->receive()) { $files = $form->getFileTransfer()->getFileInfo(); $itemModel->setUploadFiles($files); $itemModel->setConfigKey('default')->createFiles(); $lastFileId = $itemModel->getLastFileId(); if ($lastFileId) { $this->flashMessenger()->addMessage('file-upload-succeed'); $this->redirect()->toUrl('/admin/file/' . $lastFileId); } } } else { //p($form->getFileTransfer()->getMessages()); //p($form->getFileTransfer()->isUploaded()); //p($form->getMessages()); $flashMesseger = array('file-upload-failed'); } return array('form' => $form, 'item' => $postData); }