PHP和APC,文件上传进度不缓存?

时间:2010-06-29 03:09:02

标签: php file-upload apc

我一直在网上阅读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中使用一个唯一的ID。再次,这只是为了测试。)

好的,现在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,它返回正确的数组,包含所有细节等。

我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

当发生这种情况时,要检查的是,带有APC_UPLOAD_PROGRESS键的隐藏输入元素在表单中输入文件之前会立即

我知道上面示例中的表单确实这样做了,但是在更复杂的表单布局中很容易错过。