当前位置:首页 > PHP教程 > php上传下载 > 列表

zend framework文件上传功能实例代码

发布:smiling 来源: PHP粉丝网  添加日期:2020-08-11 11:06:31 浏览: 评论:0 

zend framework文件上传功能实例代码,php的版本5.3.8,zend framework的版本1.12,看下面的代码吧,有注释.

  1. //实例化上传类 
  2. $upload = new Zend_File_Transfer(); 
  3. //设置过滤器,大小限制为5M,格式为jpg,gif,png 
  4. $upload->addValidator('Size', false, 5 * 1024 * 1024); 
  5. $upload->addValidator('Extension', false, 'jpg,gif,png'); 
  6. if (!$upload->isValid()) { 
  7.     print '文件大小或格式不符合'
  8.     exit(); 
  9.   
  10. //获取上传的文件表单,可以有多项 
  11. $fileInfo = $upload->getFileInfo(); 
  12. //获取后缀名,这里pic为上传表单file控件的name         
  13. $ext = $this->getExtension($fileInfo['pic']['name']); 
  14. //定义生成目录 
  15. $dir = './upload' . date('/Y/m/d/'); 
  16. //文件重新命名 
  17. do { 
  18.     $filename = date('His') . rand(100000, 999999) . '.' . $ext
  19. while (file_exists($dir . $filename)); 
  20.   
  21. //如果目录不存在则创建目录 
  22. $this->makeDir($dir); 
  23. //将文件正式写入上传目录 
  24. $upload->setDestination($dir); 
  25. $upload->addFilter('Rename'array('target' => $filename'overwrite' => true)); 
  26. if (!$upload->receive()) { 
  27.     print '上传图片失败'
  28.     exit(); 
  29. //phpfensi.com 
  30.   
  31. print $filename

获取文件扩展名的方法:

  1. /** 
  2.  * 获取文件扩展名 
  3.  *  
  4.  * @param string $fileName 
  5.  * @return string 
  6.  */ 
  7. public function getExtension($fileName) { 
  8.     if (!$fileName) { 
  9.         return ''
  10.     } 
  11.     $exts = explode("."$fileName); 
  12.     $ext = end($exts); 
  13.     return $ext

创建目录的方法:

  1. /** 
  2.  * 创建目录 
  3.  *  
  4.  * @param string $path 
  5.  * @return boolean 
  6.  */ 
  7. public function makeDir($path) { 
  8.     if (DIRECTORY_SEPARATOR == "\\") {//windows os 
  9.         $path = iconv('utf-8''gbk'$path); 
  10.     } 
  11.     if (!$path) { 
  12.         return false; 
  13.     } 
  14.     if (file_exists($path)) { 
  15.         return true; 
  16.     } //phpfensi.com 
  17.     if (mkdir($path, 0777, true)) { 
  18.         return true; 
  19.     } 
  20.     return false; 

Tags: framework文件上传

分享到: