欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Zend Framework上传文件重命名

程序员文章站 2022-05-09 13:34:10
...
  1. //实例化文件上专类
  2. $fName=$this->_request->getPost('fName');
  3. $adapter = new Zend_File_Transfer_Adapter_Http();
  4. //存放上传文件的文件夹
  5. $adapter->setDestination('/opt/lampp/htdocs/blog/upload');
  6. //上传配置
  7. $adapter
  8. ->addValidator ( 'Extension', false, $configs['extension'])//文件格式限制
  9. ->addValidator('Size', false, array('min' =>floatval($configs['minsize']),
  10. 'max' => floatval($configs['maxsize'])))//设置上传文件的大小在1-2M之间
  11. ->addValidator ( 'Count', false, array('min' => intval($configs['mincount']),
  12. 'max' => intval($configs['maxcount'])) );//上传文件数量
  13. //重命名配置
  14. $fileInfo = $adapter->getFileInfo();//获取基本配置
  15. $extName=$this->getExtension($fileInfo);//获取扩展名
  16. $filename=md5(time()+$fileInfo['fFile']['name']).'.'.$extName;//重命名
  17. $adapter->addFilter('Rename', array('target' => $filename, 'overwrite' => true));//执行重命名
  18. //返回上传后出现在信息
  19. if (!$adapter->receive())
  20. {
  21. $messages = $adapter->getMessages ();//检测
  22. //Zend_Debug::dump($messages);
  23. $message='';
  24. if(is_array($messages))
  25. {
  26. foreach($messages as $k=>$v)
  27. {
  28. $message.=$k.':'.$v.'
    ';
  29. }
  30. }
  31. else
  32. {
  33. $message=$messages;
  34. }
  35. }
  36. else
  37. {
  38. $this->view->message='上传成功!';
  39. }
复制代码
  1. /**
  2. * 获取文件扩展名
  3. * @param String $name 文件名词
  4. * @author
  5. */
  6. public function getExtension ($name)
  7. {
  8. $fname='';
  9. if($name)
  10. {
  11. foreach ($name as $val)
  12. {
  13. $fname=$val['name'];
  14. }
  15. $exts = @split("[/\\.]", $fname) ;
  16. $n = count($exts)-1;
  17. $exts = $exts[$n];
  18. return $exts;
  19. }
  20. }
复制代码