首頁 >php教程 >php手册 >用php扩展模块APC实现大文件上传

用php扩展模块APC实现大文件上传

WBOY
WBOY原創
2016-06-06 19:56:121100瀏覽

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 一。 APC模块的安装与配置 我的环境是Windows,需要去下载php_apc. dll文件,并把php_apc.dll放到php/ext中,并在php.ini中添加以下语句: extension = php_apc.dll apc.rfc1867 = 1 apc.max_file_siz

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    一。 APC模块的安装与配置

    我的环境是Windows,需要去下载php_apc. dll文件,并把php_apc.dll放到php/ext中,并在php.ini中添加以下语句:

    extension = php_apc.dll

    apc.rfc1867 = 1

    apc.max_file_size = 200M

    另外,由于需要上传大文件,所以,在php.ini中,以下选项也需要更改:

    upload_max_filesize = 1000M

    post_max_size = 1000M

    max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒

    max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒

    memory_limit = 128M ;每个PHP页面所吃掉的最大内存,默认8M

    二。 获取进度条代码

    getprogress.php

   

    session_start();

    if(isset($_GET['progress_key'])) {

    $status = apc_fetch(‘upload_'.$_GET['progress_key']);

    if($status['total']!=0 && !emptyempty($status['total'])) {

    echo json_encode($status);

    }

    else {

    echo (0);

    }

    }

    ?>

   

    session_start();

    if(isset($_GET['progress_key'])) {

    $status = apc_fetch('upload_'.$_GET['progress_key']);

    if($status['total']!=0 && !empty($status['total'])) {

    echo json_encode($status);

    }

    else {

    echo (0);

    }

    }

    ?>

    这里用到了json,传数据非常方便。

    $status对象是拥有以下字段的数组:

    total: 文件总大小

    current: 到目前为止收到的文件数

    rate: 上传速度(以字节/秒为单位),不过要在上传完成之后才能有。

    filename: 文件名

    name: 变量名

    temp_filename: PHP 保存文件的临时副本的位置

    cancel_upload: 上传已取消(1),还是未取消(0)

    done: 上传已完成(1),还是尚未完成(0)

    这里,我们用json全部传到页面,方便后面利用。

    三。 主文件

    upload.php

   

    $id = md5(uniqid(rand(), true));

    ?>

   

   

   

Upload Example

   

   

   

   

    action=“target.php” method=“POST”>

   

    id=“progress_key” value=“” />

   

   

    type=“submit” value=“Upload!” />

   

   

    “width: 500px; height: 20px; border: 1px solid black; display:none;”>

   

    “position: relative; height: 20px; background-color: gray; width: 0%; ”>

   

   

   

[1] [2] 

用php扩展模块APC实现大文件上传

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn