php实现上传实时进度条,php使用APC实现实时上传进度条功能

php不具备实时上传进度条功能,如果想有这种功能我们一般会使用ajax来实现,但是php提供了一个apc,它就可以与php配置实现上传进度条功能。

主要针对的是window上的应用。

1.服务器要支持apc扩展,没有此扩展的话,下载一个扩展扩展要求php.5.2以上。

2.配置apc相关配置,重启apache代码如下

extension=php_apc.dll

apc.rfc1867 = on

apc.max_file_size = 1000M

upload_max_filesize = 1000M

post_max_size = 1000M说明一下:至于参数要配多大,得看项目需要apc.max_file_size, 设置apc所支持上传文件的大小,要求apc.max_file_size<=upload_max_filesize并且apc.max_file_size <=post_max_size.重新启动apache即可实现apc的支持.

3.在代码里面利用phpinfo();查看apc扩展安装了没有。

4.下面是实现代码:

getprogress.php代码如下

session_start();

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

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

echo ($status['current']/$status['total'])*100;

}

?>

upload.php

PHP Code

$id = $_GET['id'];

?>

id="progress_key" value="<?php echo $id?>"/>

type="submit" value="上传"/>

target.php

代码如下

set_time_limit(600);

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

move_uploaded_file($_FILES["test_file"]["tmp_name"],

dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);//UploadTemp文件夹位于此脚本相同目录下

echo "

上传成功

";

}

?>

index.php

代码如下

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

?>

上传进度

var proNum=0;

var loop=0;

var progressResult;

function sendURL() {

$.ajax({

type : 'GET',

url : "getprogress.php?progress_key=<?php echo $id;?>",

async : true,

cache : false,

dataType : 'json',

data: "progress_key=<?php echo $id;?>",

success : function(e) {

progressResult = e;

proNum=parseInt(progressResult);

document.getElementById("progressinner").style.width = proNum+"%";

document.getElementById("showNum").innerHTML = proNum+"%";

if ( proNum < 100){

setTimeout("getProgress()", 100);

}

}

});

}

function getProgress(){

loop++;

sendURL();

}

var interval;

function startProgress(){

document.getElementById("progressouter").style.display="block";

setTimeout("getProgress()", 100);

}

src="upload.php?id=<?php echo $id; ?>"

style="border: none; height: 100px; width: 400px;" >

以上就是跟大家分享的php使用APC实现实时上传进度条功能的方法,希望对大家的学习有所帮助。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值