Home >php教程 >php手册 >文件上传进度条php代码

文件上传进度条php代码

WBOY
WBOYOriginal
2016-05-25 16:38:521076browse

本文章是利用了php一个插件实例邮php文件上传进度条的功能,方法比较简单,因为都有组件了,所以只要按照人家的意思照办就可以实例php大文件上传的功能了.

目前我知道的方法有两种,一种是使用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源码说明文档里面有说明.

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

<?php
if ($_server[&#39;request_method&#39;] == &#39;post&#39;) { //上传请求
    $status = apc_fetch(&#39;upload_&#39; . $_post[&#39;apc_upload_progress&#39;]);
    $status[&#39;done&#39;] = 1;
    echo json_encode($status); //输出给用户端页面里的ajax调用,相关文档请自己寻找
    exit;
} elseif (isset($_get[&#39;progress_key&#39;])) { //读取上传进度
    $status = apc_fetch(&#39;upload_&#39; . $_get[&#39;progress_key&#39;]);
    echo json_encode($status);
    exit;
} else {
    //其他代码,比如上传表单等
    
}
?>

uploadprogress 模块实现方法:使用pecl模块安装方法安装该模块的php文件上传进度条实现方法 php.ini里面设置 uploadprogress.file.filename_template = "/tmp/upd_%s.txt":

<?php
if ($_server[&#39;request_method&#39;] == &#39;post&#39;) {
    if (is_uploaded_file($_files[&#39;upfile&#39;][&#39;tmp_name&#39;])) {
        $upload_dir = &#39;your_path/&#39;;
        $ext = strrchr($_files[&#39;video&#39;][&#39;name&#39;], &#39;.&#39;);
        $sessid = $_post[&#39;upload_identifier&#39;];
        $tmpfile = $upload_dir . $sessid;
        $sessfile = $upload_dir . $sessid . $ext;
        if (move_uploaded_file($_files[&#39;upfile&#39;][&#39;tmp_name&#39;], $tmpfile)) {
            //上传成功
            
        } else {
            //上传失败
            
        } else {
            //上传错误
            
        } elseif (!emptyempty($_get[&#39;sessid&#39;])) {
            header("expires:mon,26jul199705:00:00gmt");
            header("last-modified:" . gmdate("d,dmyh: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[&#39;sessid&#39;];
            $uploadvalues = uploadprogress_get_info($unique_id);
            if (is_array($uploadvalues)) {
                echo json_encode($uploadvalues);
            } else {
                //读取进度失败,另外处理逻辑
                
            }
        } else {
            //显示上传表单
            
        }
}
}
?>

pecl扩展模块uploadprogress实现.

基于php的ajax技术的具体应用解析,php限制上传文件大小的具体解决办法,php批量上传图片的具体实现方式,php动态多文件上传的具体代码分享,php通用文件上传类的具体解析 我这里举两个分别实现的例子供参考,更灵活的应用根据自己需要来修改。

apc的php文件上传进度条实现方法:

安装apc,参照官方文档安装,可以使用pecl模块安装方法快速简捷.


本文地址:

转载随意,但请附上文章地址:-)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn