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 常用字符串函数总结
Mar 15 PHP
php Try Catch异常测试
Mar 01 PHP
php面向对象全攻略 (十) final static const关键字的使用
Sep 30 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 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中使用全局变量的几种方法
2013/06/24 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
简单JS代码压缩器
2006/10/12 Javascript
执行iframe中的javascript方法
2008/10/07 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
js使用心得分享
2015/01/13 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Python callable内置函数原理解析
2020/03/05 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
《观舞记》教学反思
2014/04/16 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
教师节慰问信
2015/02/15 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python