Я по всему интернету читал на APC, и мне кажется, что это отличный способ обнаружить загрузку файлов.
У меня, однако, проблема.
Я знаю, как вызывать файлы и все остальное, используя Ajax, и это то, что я планирую сделать, но ради тестирования я делаю что-то вроде этого.
Хорошо, у меня 3 файла.
form.php
upload.php
status.php
form.php содержит:
<input type="hidden" name="APC_UPLOAD_PROGRESS" value="1234" />
<input type="file" id="fileIn" name="file" />
(Я знаю, что мне нужно будет использовать уникальный идентификатор в APC_UPLOAD_PROGRESS. Опять же, это только для тестирования.)
Хорошо, теперь в Upload.php есть обычный скрипт загрузки PHP:
$origin = $_FILES['file']['name'];
if(move_uploaded_file(...etc...etc)...
И Status.php использует APC:
$upload = apc_fetch('upload_1234');
if ($upload) {
if ($upload['done'])
$percent = 100;
else if ($upload['total'] == 0)
$percent = 0;
else
$percent = $upload['current'] / $upload['total'] * 100;
echo $percent;
}
Теперь я загружаю файл обычным методом HTTP и использую другое окно для мониторинга Status.php.
Проблема в том, Status.php ничего не возвращает!
Однако, если я напишу
print_r (apc_fetch ( 'upload_1234'));
в upload.php, он возвращает правильный массив со всеми деталями и т. Д.
Что я делаю не так?
Спасибо.