PHP APC Progress Bar - PullRequest
       12

PHP APC Progress Bar

1 голос
/ 26 января 2011

Сообщение обновлено: после комментариев комментаторов.

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 голосов
/ 26 января 2011

Каждый раз, когда вы используете механизм загрузки файла APC, вам необходимо добавить в форму дополнительный параметр, который идентифицирует загружаемый файл и является ключом для apc_fetch.

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

По мере загрузки файла значение в ключе upload . $id будет содержать информацию, необходимую для отображения индикатора выполнения.Самый простой способ - это опросить сервер с помощью вызова apc_fetch.Это говорит о том, что вашей странице загрузки не нужно обновлять текущую страницу, на которой находится пользователь.В прошлом я использовал iframe, который запускает интервал для опроса сервера.После завершения загрузки вы можете показать хорошее завершенное сообщение в том же самом фрейме.

...