• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-26) 17次浏览 已收录 0个评论

目前我知道的方法有两种,一种是使用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') {  //上传请求  <BR>    $status = apc_fetch('upload_' . $_POST['APC_UPLOAD_PROGRESS']);  <BR>    $status['done'] = 1;  <BR>    echo json_encode($status);  //输出给用户端页面里的ajax调用,相关文档请自己寻找  <BR>    exit;  <BR>} elseif (isset($_GET['progress_key'])) {   //读取上传进度  <BR>    $status = apc_fetch('upload_'.$_GET['progress_key']);  <BR>    echo json_encode($status);  <BR>    exit;  <BR>} else {  <BR>    //其他代码,比如上传表单等  <BR>} <BR>


uploadprogress 模块实现方法:

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

if($_SERVER['REQUEST_METHOD']=='POST') {  <BR>    if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {  <BR>        $upload_dir = 'your_path/';  <BR>        $ext        = strrchr($_FILES['video']['name'], '.');  <BR>        $sessid     = $_POST['UPLOAD_IDENTIFIER'] ;  <BR>        $tmpfile    = $upload_dir . $sessid;   <BR>        $sessfile   = $upload_dir . $sessid .$ext;  <BR>        if (move_uploaded_file($_FILES['upfile']['tmp_name'],$tmpfile)) {  <BR>            //上传成功  <BR>        } else {  <BR>            //上传失败  <BR>    } else {  <BR>        //上传错误  <br><br>} elseif (!empty($_GET['sessid'])) {  <BR>    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"<div style="color:transparent">!本文来源gaodai.ma#com搞#代!码(网</div><em>搞gaodaima代码</em>);  <BR>    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  <BR>    header("Cache-Control: no-store, no-cache, must-revalidate");  <BR>    header("Cache-Control: post-check=0, pre-check=0", false);  <BR>    header("Pragma: no-cache");  <BR>    header("Content-Type:text/html;charset=UTF-8");  <br><br>    $unique_id = $_GET['sessid'];  <BR>    $uploadvalues = uploadprogress_get_info($unique_id);  <br><br>    if (is_array($uploadvalues)) {  <BR>        echo json_encode($uploadvalues);  <BR>    } else {  <BR>        //读取进度失败,另外处理逻辑  <BR>    }  <br><br>} else {  <BR>    //显示上传表单  <BR>}<BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 文件上传进度条的两种实现方法的代码_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址