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生成静态页
Nov 25 PHP
模拟flock实现文件锁定
Feb 14 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
Php注入点构造代码
Jun 14 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
PHP 递归效率分析
Nov 24 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
php输出xml必须header的解决方法
Oct 17 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
Laravel实现短信注册的示例代码
May 29 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
如何设置mysql允许外网访问
2013/06/04 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python算法表示概念扫盲教程
2017/04/13 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python IP地址转整数
2020/11/20 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
团支部建设方案
2014/05/02 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
文员岗位职责
2015/02/04 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
JavaScript的function函数详细介绍
2021/11/20 Javascript
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏