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连接Oracle for NT 远程数据库
Oct 09 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
Apr 10 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python二维码生成识别实例详解
2019/07/16 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
环保宣传标语
2014/06/12 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
成事在人观后感
2015/06/16 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
Python 数据可视化之Bokeh详解
2021/11/02 Python
vue如何清除浏览器历史栈
2022/05/25 Vue.js