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 选项及相关信息函数库
Dec 04 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
微信公众平台接口开发入门示例
Dec 24 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
yii框架搜索分页modle写法
Dec 19 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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模拟HTTP认证
2006/10/09 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
checkbox 复选框不能为空
2009/07/11 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
Django中几种重定向方法
2015/04/28 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python json转字典字符方法实例解析
2020/04/13 Python
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
清洁工表扬信
2014/01/08 职场文书
小学生检讨书大全
2014/02/06 职场文书
父亲节寄语大全
2015/02/27 职场文书
技术员岗位职责范本
2015/04/11 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL