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 空格,换行,跳格使用说明
Dec 18 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
php生成RSS订阅的方法
Feb 13 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP重定向与伪静态区别
Feb 19 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP 爬取网页的主要方法
Jul 13 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
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
python根据路径导入模块的方法
2014/09/30 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
python 中如何获取列表的索引
2019/07/02 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
师德先进个人材料
2014/12/20 职场文书
建党伟业观后感
2015/06/01 职场文书
母亲去世追悼词
2015/06/23 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript