Zend Framework上传文件重命名的实现方法


Posted in PHP onNovember 25, 2016

本文实例讲述了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 Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
编译问题
Oct 09 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
深入密码加salt原理的分析
Jun 06 PHP
php绘制一条弧线的方法
Jan 24 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 #PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 #PHP
php对接java现实加签验签的实例
Nov 25 #PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 #PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 #PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 #PHP
基于CI框架的微信网页授权库示例
Nov 25 #PHP
You might like
几种显示数据的方法的比较
2006/10/09 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
PHP简洁函数小结
2011/08/12 PHP
CI(CodeIgniter)模型用法实例分析
2016/01/20 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
详解python中的lambda与sorted函数
2020/09/04 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
共产党员承诺书
2014/03/25 职场文书
廉洁校园实施方案
2014/05/25 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers