/** * upload * @author Thomas Schedler <*****@*****.**> * @version 1.0 */ protected function upload() { $this->core->logger->debug('massiveart.files.File->upload()'); try { if ($this->objUpload != null && $this->objUpload instanceof Zend_File_Transfer_Adapter_Abstract) { /** * first check upload path */ $this->checkUploadPath(); $arrFileInfos = pathinfo($this->objUpload->getFileName($this->_FILE_NAME)); $this->strExtension = strtolower($arrFileInfos['extension']); $this->strTitle = $arrFileInfos['filename']; $this->dblSize = $this->objUpload->getFileSize($this->_FILE_NAME); $this->strMimeType = $this->objUpload->getMimeType($this->_FILE_NAME); /** * receive file */ $this->objUpload->addFilter('Rename', $this->getUploadPath() . $this->strFileId . '.' . $this->strExtension, $this->_FILE_NAME); $this->objUpload->receive($this->_FILE_NAME); /** * check public file path */ $this->checkPublicFilePath(); /** * public copy */ //FIXME why ??? copy($this->getUploadPath() . $this->strFileId . '.' . $this->strExtension, $this->getPublicFilePath() . $this->strFileId . '.' . $this->strExtension); } } catch (Exception $exc) { $this->core->logger->err($exc); } }
/** * upload * @author Thomas Schedler <*****@*****.**> */ protected function upload($blnIsNewVersion = false) { $this->core->logger->debug('massiveart.files.File->upload()'); try { if ($this->objUpload != null && $this->objUpload instanceof Zend_File_Transfer_Adapter_Abstract) { /** * first check upload path */ $this->checkUploadPath(); $arrFileInfos = pathinfo($this->objUpload->getFileName($this->_FILE_NAME)); $this->strExtension = strtolower($arrFileInfos['extension']); $this->strTitle = $arrFileInfos['filename']; $this->dblSize = $this->objUpload->getFileSize($this->_FILE_NAME); $this->strMimeType = $this->objUpload->getMimeType($this->_FILE_NAME); if ($blnIsNewVersion == true && $this->objFileData instanceof Zend_Db_Table_Row_Abstract) { $this->strFileId = $this->objFileData->fileId; } else { /** * make fileId conform */ $this->strFileId = $this->makeFileIdConform($this->strTitle); /** * check uniqueness of fileId */ $this->strFileId = $this->checkFileIdUniqueness($this->strFileId); } /** * receive file */ $this->objUpload->addFilter('Rename', array('target' => $this->getUploadPath() . $this->strFileId . '.' . $this->strExtension, 'overwrite' => true), $this->_FILE_NAME); $this->objUpload->receive($this->_FILE_NAME); } } catch (Exception $exc) { $this->core->logger->err($exc); } }
public function handleUpload() { $validate = $this->validateClass(); if ($validate !== true) { return $validate; } $translate = Zend_Registry::get("Zend_Translate"); $zft = new Zend_File_Transfer(); $this->_adapter = $zft->getAdapter('http'); if ($this->_adapter->isUploaded()) { if ($this->_rename) { if (!$this->_useMd5Name) { $name = $this->_name; } else { $name = $this->_adapter->getHash('md5'); } if ($this->_useFileExtension) { $extension = substr($this->_adapter->getFileName(null, false), strrpos($this->_adapter->getFileName(null, false), '.') + 1); $name .= '.' . strtolower($extension); } } $path = $this->_genPath($name); if (Agana_Util_FileHandle::isWritableDir($path)) { $this->_adapter->addValidator('ExcludeExtension', false, 'php,exe,so,dll')->addValidator('Size', false, $this->_sizeLimit)->addValidator('Extension', false, $this->_allowedExtensions)->setDestination($path); if ($this->_rename) { $this->_adapter->addFilter('Rename', array('target' => $path . $name, 'overwrite' => true)); } if ($this->_adapter->isValid()) { try { $this->_adapter->receive(); $this->_adapter->setOptions(array('useByteString' => false)); $file = $this->_adapter->getFileInfo(); $file = array_shift($file); $result['name'] = $file['name']; $result['type'] = $file['type']; $result['size'] = $file['size']; /** * Resize images based on dimensions options */ //TODO test if the file uploaded is a image foreach ($this->_dimensions as $sizename => $dim) { $wide = WideImage::load($file['tmp_name']); $imgResult = $wide->resize($dim['width'], $dim['height'], 'inside', 'down'); $resizedfilename = Agana_Util_FileHandle::genFileNameByClassification($file['name'], $sizename); if (strpos(strtolower($file['type']), 'png') !== false) { $compression = 8; } else { $compression = 80; } $imgResult->saveToFile($file['destination'] . '/' . $resizedfilename, $compression); } return $result; } catch (Zend_File_Transfer_Exception $e) { return array('error' => $e->getMessage()); } } else { $error = array(); foreach ($this->_adapter->getMessages() as $value) { $error[] = $value; } return array('error' => $translate->_($error)); } } else { return array('error' => $translate->_('file could not be created or path is not writable')); } } else { return array('error' => $translate->_('No file uploaded')); } }