PHP没有实时
上传进度条的
功能。如果我们想拥有这个
函数,我们通常使用Ajax来实现它,但是PHP提供了一个APC,它可以用PHP
配置上传进度条函数。
主要目的是在窗口上应用。
1。
服务器
支持没有此
扩展的APC扩展,并且
下载扩展扩展需要超过PHP 5.2。
2。配置与APC相关的配置,重新
启动Apache
代码如下
php_apc.dll延伸=
在apc.rfc1867 =
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支持。
三.使用phpinfo()的代码;看到APC扩展
安装不。
4。下面是实现代码:
getprogress.php
代码如下
< PHP
session_start();
如果(isset($ _get { 'progress_key ' })){
$状态= apc_fetch('upload_'。_get美元{ 'progress_key});
回声($状态{ } /当前的美元地位的综合{ })* 100;
}
>
upload.php
PHP代码
< PHP
ID =美元美元_get { 'id' };
>
<
输入type=隐藏name=apc_upload_progress
id=progress_key 价值= / >
<输入onclick=window.parent.startprogress();return true;
类型 target.php
代码如下
< PHP
(600)set_time_limit;
如果($ _server { } = = 'post 'request_method ' '){
move_uploaded_file($ _files {test_file
dirname($ _server { 'script_filename})。uploadtemp / / 。_files美元{test_file
上传成功;
}
>
index.php
代码如下
< PHP
$id = MD5(uniqid(RAND(),真的));
>
上传进度
VaR倒卧= 0;
var循环= 0;
无功progressresult;
功能sendurl(){
$ ajax({
类型:' ',
网址:得到
任务的进度。phpprogress_key =
异步:真,
缓存:false,
DataType:'json,
数据:progress_key =
成功:函数(e){
progressresult = E;
倒卧= parseInt(progressresult);
document.getelementbyid(progressinner)。Style.width =倒卧+%;
document.getelementbyid(shownum ).innerHTML =倒卧+%;
如果(倒卧<100){
setTimeout(得到任务的进度()
}
}
});
}
功能得到任务的进度(){
循环+;
sendurl();
}
VaR区间;
功能startprogress(){
document.getelementbyid(progressouter)。风格。
显示为块;
setTimeout(得到任务的进度()
}
< iframe id=框架name=框架
src=上传。phpid =
style=边界:无;身高:100px;宽度:400px;>
以上就是与大家
分享使用APC实现php实时上传进度条功能的
方法,希望能对大家的
学习有所帮助。