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


Posted in PHP onDecember 25, 2013
//实例化上传类
$upload = new Zend_File_Transfer();
//设置过滤器,大小限制为5M,格式为jpg,gif,png
$upload->addValidator('Size', false, 5 * 1024 * 1024);
$upload->addValidator('Extension', false, 'jpg,gif,png');
if (!$upload->isValid()) {
    print '文件大小或格式不符合';
    exit();
}
//获取上传的文件表单,可以有多项
$fileInfo = $upload->getFileInfo();
//获取后缀名,这里pic为上传表单file控件的name        
$ext = $this->getExtension($fileInfo['pic']['name']);
//定义生成目录
$dir = './upload' . date('/Y/m/d/');
//文件重新命名
do {
    $filename = date('His') . rand(100000, 999999) . '.' . $ext;
} while (file_exists($dir . $filename));
//如果目录不存在则创建目录
$this->makeDir($dir);
//将文件正式写入上传目录
$upload->setDestination($dir);
$upload->addFilter('Rename', array('target' => $filename, 'overwrite' => true));
if (!$upload->receive()) {
    print '上传图片失败';
    exit();
}
print $filename;

获取文件扩展名的方法:

/**
 * 获取文件扩展名
 * 
 * @param string $fileName
 * @return string
 */
public function getExtension($fileName) {
    if (!$fileName) {
        return '';
    }
    $exts = explode(".", $fileName);
    $ext = end($exts);
    return $ext;
}

创建目录的方法:

/**
 * 创建目录
 * 
 * @param string $path
 * @return boolean
 */
public function makeDir($path) {
    if (DIRECTORY_SEPARATOR == "\\") {//windows os
        $path = iconv('utf-8', 'gbk', $path);
    }
    if (!$path) {
        return false;
    }
    if (file_exists($path)) {
        return true;
    }
    if (mkdir($path, 0777, true)) {
        return true;
    }
    return false;
}
PHP 相关文章推荐
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
使用PHP会话(Session)实现用户登陆功能
Jun 29 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
linux中cd命令使用详解
Jan 08 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php UNIX时间戳用法详解
Feb 16 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 #PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 #PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 #PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 #PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 #PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 #PHP
linux实现php定时执行cron任务详解
Dec 24 #PHP
You might like
学习php笔记 字符串处理
2010/10/19 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue中实现左右联动的效果
2018/06/22 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
浅谈Python中的闭包
2015/07/08 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python flask实现分页的示例代码
2018/08/02 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
机械工程系毕业生求职信
2013/09/27 职场文书
公务员个人自我评价分享
2013/11/06 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
初中语文教学随笔
2015/08/15 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
MySQL 数据丢失排查案例
2021/05/08 MySQL
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
python实现手机推送 代码也就10行左右
2022/04/12 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript