本文整理汇总了PHP中Zend_File_Transfer_Adapter_Abstract类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_File_Transfer_Adapter_Abstract类的具体用法?PHP Zend_File_Transfer_Adapter_Abstract怎么用?PHP Zend_File_Transfer_Adapter_Abstract使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_File_Transfer_Adapter_Abstract类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: upload
/**
* upload
* @author Thomas Schedler <tsh@massiveart.com>
* @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);
}
}
示例2: setTransferAdapter
/**
* Set transfer adapter
*
* @param string|Zend_File_Transfer_Adapter_Abstract $adapter
* @return Zend_Form_Element_File
* @throws Zend_Form_Element_Exception
*/
public function setTransferAdapter($adapter)
{
if ($adapter instanceof Zend_File_Transfer_Adapter_Abstract) {
$this->_adapter = $adapter;
} elseif (is_string($adapter)) {
$loader = $this->getPluginLoader(self::TRANSFER_ADAPTER);
$class = $loader->load($adapter);
$this->_adapter = new $class();
} else {
throw new Zend_Form_Element_Exception('Invalid adapter specified');
}
foreach (array('filter', 'validate') as $type) {
$loader = $this->getPluginLoader($type);
$this->_adapter->setPluginLoader($loader, $type);
}
return $this;
}
示例3: upload
/**
* upload
* @author Thomas Schedler <tsh@massiveart.com>
*/
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);
}
}
示例4: removeValidator
/**
* jump over parent 'removeValidator' to remove 'Upload' validator
*
*/
public function removeValidator($name)
{
return \Zend_File_Transfer_Adapter_Abstract::removeValidator($name);
}
示例5: isValid
/**
* Checks if the files are valid
*
* @param string|array $files (Optional) Files to check
* @return boolean True if all checks are valid
*/
public function isValid($files = null)
{
// Workaround for WebServer not conforming HTTP and omitting CONTENT_LENGTH
$content = 0;
if (isset($_SERVER['CONTENT_LENGTH'])) {
$content = $_SERVER['CONTENT_LENGTH'];
} else {
if (!empty($_POST)) {
$content = serialize($_POST);
}
}
// Workaround for a PHP error returning empty $_FILES when form data exceeds php settings
if (empty($this->_files) && $content > 0) {
if (is_array($files)) {
$files = current($files);
}
$temp = array($files => array('name' => $files, 'error' => 1));
$validator = $this->_validators['Zend_Validate_File_Upload'];
$validator->setFiles($temp)->isValid($files, null);
$this->_messages += $validator->getMessages();
return false;
}
return parent::isValid($files);
}
示例6: isPathWriteable
public function isPathWriteable($path)
{
return parent::_isPathWriteable($path);
}
示例7: isValid
/**
* Checks if the files are valid
*
* @param string|array $files (Optional) Files to check
* @return boolean True if all checks are valid
*/
public function isValid($files = null)
{
// Workaround for a PHP error returning empty $_FILES when form data exceeds php settings
if (empty($this->_files) && $_SERVER['CONTENT_LENGTH'] > 0) {
if (is_array($files)) {
$files = current($files);
}
$temp = array($files => array('name' => $files, 'error' => 1));
$validator = $this->_validators['Zend_Validate_File_Upload'];
$validator->setFiles($temp)->isValid($files, null);
$this->_messages += $validator->getMessages();
return false;
}
return parent::isValid($files);
}
示例8: handleUpload
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'));
}
}