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 版本]
Mar 20 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
PHP异步调用socket实现代码
Jan 12 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
PHP多文件上传实例
Jul 09 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
php简单实现sql防注入的方法
Apr 22 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
星际争霸任务指南——神族
2020/03/04 星际争霸
function.inc.php超越php
2006/12/09 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python Queue模块详解
2014/11/30 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python实现汽车管理系统
2018/11/30 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
党员公开承诺书
2014/03/25 职场文书
购房个人委托书范本
2014/10/11 职场文书
《窃读记》教学反思
2016/02/18 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python