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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
全文搜索和替换
Oct 09 PHP
PHP面向对象编程快速入门
Dec 14 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
php和asp语法上的区别总结
May 12 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 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 substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
JS高级运动实例分析
2016/12/20 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python中模块string.py详解
2017/03/12 Python
python实现简易通讯录修改版
2018/03/13 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
使用python3实现操作串口详解
2019/01/01 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
科研先进个人典型材料
2014/01/31 职场文书
环保建议书
2014/03/12 职场文书
企业法律事务工作总结
2015/08/11 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers