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 相关文章推荐
IStream与TStream之间的相互转换
Aug 01 PHP
php db类库进行数据库操作
Mar 19 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 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访问查询mysql数据的三种方法
2006/10/09 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
Js 中debug方式
2010/02/07 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
python解决字典中的值是列表问题的方法
2013/03/04 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Django自定义认证方式用法示例
2017/06/23 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
Django中间件基础用法详解
2019/07/18 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
如何解决python多种版本冲突问题
2020/10/13 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
理财投资建议书
2014/03/12 职场文书
请假条范文大全
2014/04/10 职场文书
五年级学生评语
2014/04/22 职场文书