在php中,显示上传文件进度有swf,apc,纯javascript等集中方法,而现在比较推荐的是利用php的session(PHP>5.4)实现,这里,我简单的记录一下。
相关资料可以参考php.net/manual/en/session.upload-progress.php,还是相对比较简单的,可以参考www.111cn.net/phper/php-cy/54314.htm这里的讲解,但是我实验了以下,生成了一个1G 的文件,进度条只是显示了两次值,一次64%,一次100%,不知道哪里有问题,这里记录一下问题,此外官方文档的需要关闭服务器的request的缓存我也是不是很理解是什么意思。
另外是通过apc,在ubuntu上安钻过sudo apt-get install php-apc即可
<?php
/*
* Created on 2010-4-16
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$myfile=$_FILES['upfile'];
echo $myfile['size'];
echo $myfile['size'];
print_r($myfile);
$tempf=$myfile['tmp_name'];
$name=$myfile['name'];
move_uploaded_file($tempf,'up/'.$name);}
if(isset($_GET['key']))
{
//header('Content-Type:application/json; charset=utf-8' ) ;
// Retrieve the status using the getStatus() function below
//echo json_encode(getStatusAPC());
echo json_encode(getStatusAPC());
}
function getStatusAPC()
{
$response=false;
if($status = apc_fetch('upload_'.$_GET['key'])) {
$response=apc_fetch('upload_'.$_GET['key']);
}
return $response;
}
?>