PHP 文件上传进度条的两种实现方法的代码


Posted in PHP onNovember 25, 2007

目前我知道的方法有两种,一种是使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc),另外一种方法是使用PECL扩展模块 uploadprogress实现(http://pecl.php.net/package/uploadprogress)我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。

APC实现方法:

安装APC,参照官方文档安装,可以使用PECL模块安装方法快速简捷,这里不说明
配置php.ini,设置参数 apc.rfc1867=1 ,使APC支持上传进度条功能,在APC源码说明文档里面有说明
代码范例:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {  //上传请求  
    $status = apc_fetch('upload_' . $_POST['APC_UPLOAD_PROGRESS']);  
    $status['done'] = 1;  
    echo json_encode($status);  //输出给用户端页面里的ajax调用,相关文档请自己寻找  
    exit;  
} elseif (isset($_GET['progress_key'])) {   //读取上传进度  
    $status = apc_fetch('upload_'.$_GET['progress_key']);  
    echo json_encode($status);  
    exit;  
} else {  
    //其他代码,比如上传表单等  
} 

uploadprogress 模块实现方法:

使用PECL模块安装方法安装该模块
php.ini里面设置 uploadprogress.file.filename_template = “/tmp/upd_%s.txt”
代码范例:

if($_SERVER['REQUEST_METHOD']=='POST') {  
    if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {  
        $upload_dir = 'your_path/';  
        $ext        = strrchr($_FILES['video']['name'], '.');  
        $sessid     = $_POST['UPLOAD_IDENTIFIER'] ;  
        $tmpfile    = $upload_dir . $sessid;   
        $sessfile   = $upload_dir . $sessid .$ext;  
        if (move_uploaded_file($_FILES['upfile']['tmp_name'],$tmpfile)) {  
            //上传成功  
        } else {  
            //上传失败  
    } else {  
        //上传错误  } elseif (!empty($_GET['sessid'])) {  
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
    header("Cache-Control: no-store, no-cache, must-revalidate");  
    header("Cache-Control: post-check=0, pre-check=0", false);  
    header("Pragma: no-cache");  
    header("Content-Type:text/html;charset=UTF-8");  
    $unique_id = $_GET['sessid'];  
    $uploadvalues = uploadprogress_get_info($unique_id);  
    if (is_array($uploadvalues)) {  
        echo json_encode($uploadvalues);  
    } else {  
        //读取进度失败,另外处理逻辑  
    }  
} else {  
    //显示上传表单  
}
PHP 相关文章推荐
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
利用php生成验证码
Feb 23 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PHP实现git部署的方法教程
Dec 19 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 #PHP
php Mysql日期和时间函数集合
Nov 16 #PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 #PHP
表单复选框向PHP传输数据的代码
Nov 13 #PHP
实用函数10
Nov 08 #PHP
实用函数9
Nov 08 #PHP
实用函数8
Nov 08 #PHP
You might like
用户的详细注册和判断
2006/10/09 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
javascript插入样式实现代码
2012/02/22 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
使用tensorflow实现线性回归
2018/09/08 Python
Python连接Redis的基本配置方法
2018/09/13 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
波兰补充商店:Muscle Power
2018/10/29 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
发展部经理职责规定
2014/02/22 职场文书
银行资信证明
2015/06/17 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
化工厂员工工作总结
2015/10/15 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书