本文實例講述了Zend Framework上傳文件重命名的實現方法。分享給大家供大家參考,具體如下:
1. Zend Framework文件上傳重命名
//實例化文件上專類
$fName=$this->_request->getPost('fName');
$adapter = new Zend_File_Transfer_Adapter_Http();
//存放上傳文件的文件夾
$adapter->setDestination('/opt/lampp/htdocs/blog/upload');
//上傳配置
$adapter
->addValidator ( 'Extension', false, $configs['extension'])//文件格式限制
->addValidator('Size', false, array('min' =>floatval($configs['minsize']),
'max' => floatval($configs['maxsize'])))//設置上傳文件的大小在1-2M之間
->addValidator ( 'Count', false, array('min' => intval($configs['mincount']),
'max' => intval($configs['maxcount'])) );//上傳文件數量
//重命名配置
$fileInfo = $adapter->getFileInfo();//獲取基本配置
$extName=$this->getExtension($fileInfo);//獲取擴展名
$filename=md5(time()+$fileInfo['fFile']['name']).'.'.$extName;//重命名
$adapter->addFilter('Rename', array('target' => $filename, 'overwrite' => true));//執行重命名
//返回上傳後出現在信息
if (!$adapter->receive())
{
$messages = $adapter->getMessages ();//檢測
//Zend_Debug::dump($messages);
$message='';
if(is_array($messages))
{
foreach($messages as $k=>$v)
{
$message.=$k.':'.$v.'<br>';
}
}
else
{
$message=$messages;
}
}
else
{
$this->view->message='上傳成功!';
}
2. 獲取文件擴展名
/**
* 獲取文件擴展名
* @param String $name 文件名詞
* @author
*/
public function getExtension ($name)
{
$fname='';
if($name)
{
foreach ($name as $val)
{
$fname=$val['name'];
}
$exts = @split("[/\\.]", $fname) ;
$n = count($exts)-1;
$exts = $exts[$n];
return $exts;
}
}
更多關於zend相關內容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優秀開發框架總結》、《Yii框架入門及常用技巧總結》、《ThinkPHP入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基於Zend Framework框架的PHP程序設計有所幫助。