Ajax+php带进度条上传文件

PHP文件上传进度条的实现主要有两种方法,一种是添加APC扩展模块来实现,另外一种则需要使用PECL扩展模块uploadprogress实现。

AD: 

我们在编写文件上传代码的时候,还需要考虑一个重要的实现功能,那就是文件上传所需要的进度条。目前我知道PHP文件上传进度条的方法有两种,一种是使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现,另外一种方法是使用PECL扩展模块uploadprogress实现。

 基于PHPAJAX技术的具体应用解析

 PHP限制上传文件大小的具体解决办法

 PHP批量上传图片的具体实现方式

 PHP动态多文件上传的具体代码分享

 PHP通用文件上传类的具体解析

我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。 

APCPHP文件上传进度条实现方法:

安装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;  

10 else  

11     //其他代码,比如上传表单等  

12 

uploadprogress 模块实现方法:

使用PECL模块安装方法安装该模块的PHP文件上传进度条实现方法

php.ini里面设置 uploadprogress.file.filename_template /tmp/upd_%s.txt

代码范例:

13 if($_SERVER['REQUEST_METHOD']=='POST')  

14     if (is_uploaded_file($_FILES['upfile']['tmp_name']))  

15         $upload_dir 'your_path/' 

16         $ext         strrchr($_FILES['video']['name'], '.');  

17         $sessid      $_POST['UPLOAD_IDENTIFIER']  

18         $tmpfile     $upload_dir $sessid;    

19         $sessfile    $upload_dir $sessid .$ext;  

20         if (move_uploaded_file($_FILES['upfile']['tmp_name'],$tmpfile))  

21             //上传成功  

22         else  

23             //上传失败  

24     else  

25         //上传错误  

26           

27 elseif (!empty($_GET['sessid']))  

28     header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  

29     header("Last-Modified: gmdate("D, H:i:s") GMT");  

30     header("Cache-Control: no-store, no-cache, must-revalidate");  

31     header("Cache-Control: post-check=0pre-check=0", false);  

32     header("Pragma: no-cache");  

33     header("Content-Type:text/html;charset=UTF-8");  

34  

35     $unique_id $_GET['sessid'];  

36     $uploadvalues uploadprogress_get_info($unique_id);  

37  

38     if (is_array($uploadvalues))  

39         echo json_encode($uploadvalues);  

40     else  

41         //读取进度失败,另外处理逻辑  

42      

43       

44 else  

45     //显示上传表单  

46 

以上就是我们为大家介绍的两种PHP文件上传进度条的具体方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值