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文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
PHP include_path设置技巧分享
Jul 03 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php批量删除操作代码分享
Feb 26 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截取中文字符串的问题
2006/07/12 PHP
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
jQuery中parents()方法用法实例
2015/01/07 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
详解Python的单元测试
2015/04/28 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
室内设计专业自荐信
2014/05/31 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
后勤个人工作总结
2015/02/28 职场文书
小学班主任研修日志
2015/11/13 职场文书
mysql部分操作
2021/04/05 MySQL
python 对图片进行简单的处理
2021/06/23 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS