PHP APC进度条

时间:2011-01-26 04:08:16

标签: php file-upload mamp apc

发布更新:评论员建议后。

的index.php

<?php
$id = uniqid("");
?>
</head>

<body>
<form method="post" action="frame.php" target="upload_iframe" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $id; ?>"/>
<br />
<input type="submit" name="submit" value="Submit" />
</form>
<iframe name="upload_iframe" style="width: 400px; height: 100px;">
</iframe>

frame.php

<?php
if(isset($_POST['progress_key'])) {
    echo "hey1";
    $status = apc_fetch('upload_'.$_POST['progress_key']);
    echo $status['current']/$status['total']*100;
}
echo "hey2";
?>

仍然无法工作:(,我甚至不在框架中获取POST表格数据。我哪里错了?

问候。

1 个答案:

答案 0 :(得分:0)

每当您使用APC文件上传机制时,您需要在表单中添加一个额外参数来标识正在上传的文件,并且是您apc_fetch的关键。

<?php $id = uniqid(time()); ?>
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="myUniProgressKey" value="<?php echo $id; ?>"/>

上传文件时,键upload . $id中的值将包含显示进度条所需的信息。最简单的方法是使用您拥有的apc_fetch电话来ajax轮询服务器。这表明您的上传页面不需要刷新用户所在的当前页面。我过去曾使用iframe启动间隔来轮询服务器。上传完成后,您就可以在同一iframe中显示完整的完整消息。