private function uploadDocumentFile() { $documentId = $this->getRequest()->getPost('documentId'); if (!$documentId) { return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => ['Dữ liệu không hợp lệ'])); } $document = new \Document\Model\Document(); $document->setId($documentId); $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper'); /* @var $documentMapper \Document\Model\DocumentMapper */ if (!$documentMapper->get($document)) { return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => ['Dữ liệu không hợp lệ'])); } $form = new \Home\Form\Media\DocumentFile($this->getServiceLocator(), ['id' => $document->getId()]); $dataPopulate = array_merge_recursive($this->getRequest()->getPost()->toArray(), $this->getRequest()->getQuery()->toArray(), $this->getRequest()->getFiles()->toArray()); $dataPopulate['fileUpload']['name'] = Format::removeSigns($dataPopulate['fileUpload']['name']); $form->setData($dataPopulate); if ($form->isValid()) { $formData = $form->getData(); $file = new \Document\Model\DocumentFile(); $file->setFileName($formData['fileUpload']['name']); $file->setFileSize($formData['fileUpload']['size']); $file->setDocumentId($document->getId()); $file->setCreatedById($this->user()->getIdentity()); $file->setCreatedDateTime(DateBase::getCurrentDateTime()); $fileMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentFileMapper'); /* @var $fileMapper \Document\Model\DocumentFileMapper */ $fileMapper->save($file); return $this->getJsonModel()->setVariables(array('code' => 1, 'messages' => $formData)); } else { return $this->getJsonModel()->setVariables(array('code' => 0, 'messages' => $form->getErrorMessagesList())); } }
public function officeconvertuserdocumentfileAction() { $officeDirector = BASE_PATH . '/data/oneOfficeFiles'; list($adapter, $sql) = $this->createOfficeAdapter(); $select = $sql->select(['df' => 'document_files']); $select->join(['d' => 'documents'], 'd.ID=df.document_id', ['created_by_id']); $select->where(['d.folder' => 'USER', 'd.type' => 'FILE', 'd.is_deleted' => 'no']); $select->order(['ID ASC']); $query = $sql->buildSqlString($select); $rows = $adapter->query($query, $adapter::QUERY_MODE_EXECUTE); $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper'); $documentCategoryMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentCategoryMapper'); $documentFileMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentFileMapper'); $index = 0; $totalSize = 0; foreach ($rows->toArray() as $row) { $officeUri = $officeDirector . '/document/user/' . $row['created_by_id'] . '/' . $row['filename']; if (!file_exists($officeUri)) { echo '<b>File: </b>' . $officeUri . '<br/>'; echo '<b style="color:red;">File not found!!!</b>'; echo '<br/><br/>=============================================<br/>'; continue; } $document = new \Document\Model\Document(); $document->setOneofficeId($row['document_id']); // check nếu đã có bản ghi trong document thì coi nó là 1 file đính kèm của document if ($documentMapper->isExistedOneofficeCode($document)) { $documentFile = new \Document\Model\DocumentFile(); $documentFile->setDocumentId($document->getId()); $documentFile->setFileName($row['filename']); $documentFile->setCreatedDateTime($document->getCreatedDateTime()); $uri = Uri::getSavePath($documentFile); echo '<b>docfile: </b>' . $document->getName(); echo '<br/>'; echo $row['ID'] . ' --- ' . $row['document_id']; echo '<br/>'; echo '<b>Từ: </b>' . $officeUri; echo '<br/>'; echo '<b>Đến: </b>' . $uri . '/' . $documentFile->getFileName(); echo '<br/>'; if (is_file($officeUri)) { $filesize = filesize($officeUri); echo '<b>Filesize: </b>' . $filesize; $totalSize += $filesize; $documentFile->setFileSize($filesize); } $documentFile->setCreatedById($document->getCreatedById()); if (!$documentFileMapper->isExisted($documentFile)) { $documentFileMapper->save($documentFile); if (!file_exists($uri)) { $oldmask = umask(0); mkdir($uri, 0777, true); umask($oldmask); } @copy($officeUri, $uri . '/' . $documentFile->getFileName()); $index++; echo '<br/><span style="color:green">Đã chuyển</span>'; } echo '<br/><br/>=============================================<br/>'; } else { // nếu ko thì nghĩa laà file gắn với danh mục, tạo mới 1 document rồi gắn file với document đó // nhưng kiểm tra dữ liệu ko có case này nên ko viết $documentCategory = new \Document\Model\DocumentCategory(); $documentCategory->setOneofficeId($row['document_id']); if ($documentCategoryMapper->isExistedOneofficeCode($documentCategory)) { echo '<span style="color:blue;">Tạo mới theo dnah mục</span>'; echo '<br/><br/>=============================================<br/>'; } else { echo '<span style="color:red;">Ko dữ liệu </span>'; echo $row['ID'] . ' --- ' . $row['document_id']; echo '<br/><br/>=============================================<br/>'; } } } echo '<b>Tổng: </b>' . $index; echo '<br/><b>Tổng dung lượng: </b>' . $totalSize; die; }