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 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
Phpbean路由转发的php代码
Jan 10 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php权重计算方法代码分享
Jan 09 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
php上传文件常见问题总结
Feb 03 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
tp5.1 实现setInc字段自动加1
Oct 18 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制作静态网站的模板框架(四)
2006/10/09 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
python 定时修改数据库的示例代码
2018/04/08 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
介绍一下.net和Java的特点和区别
2012/09/26 面试题
《青海高原一株柳》教学反思
2014/04/25 职场文书
安全技术说明书
2014/05/09 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
员工辞退通知书
2015/04/17 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
信用卡工作证明范本
2015/06/19 职场文书
Python绘制分类图的方法
2021/04/20 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL