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的类 功能齐全的发送邮件类
Oct 09 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
php的闭包(Closure)匿名函数详解
Feb 22 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 PHP
php加密之discuz内容经典加密方式实例详解
Feb 04 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
javascript 特殊字符串
2009/02/25 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
深入理解Python3中的http.client模块
2017/03/29 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
英国二手物品交易网站:Preloved
2017/10/06 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
2014年五一活动策划方案
2014/03/15 职场文书
摄影展策划方案
2014/06/02 职场文书
2014年减负工作总结
2014/12/10 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
创业计划书介绍
2019/04/24 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书