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下通过伪造http头破解防盗链的代码
Jul 03 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP自定义多进制的方法
Nov 03 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
php-7.3.6 编译安装过程
Feb 11 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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 使用curl提交json格式数据
2013/06/29 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
Smarty3配置及入门语法
2017/02/22 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
初学Javascript的一些总结
2008/11/03 Javascript
Js 中debug方式
2010/02/07 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
JavaScript登录验证基础教程
2017/11/01 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
python获取本机外网ip的方法
2015/04/15 Python
python实现图片批量压缩程序
2018/07/23 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
化学实验员岗位职责
2013/12/28 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
台风停课通知
2015/04/24 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
解除处分决定书
2015/06/25 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS