2

我一直在互联网上阅读 APC,这似乎是一种检测文件上传的好方法。

然而,我有一个问题。

我知道如何使用 Ajax 调用文件和所有内容,这就是我打算做的事情,但为了测试,我正在做这样的事情。

好的,所以我有 3 个文件。

form.php 上传.php 状态.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,它返回正确的数组,包括所有细节等。

我究竟做错了什么?

谢谢。

4

1 回答 1

2

发生这种情况时,需要检查的是带有 APC_UPLOAD_PROGRESS 键的隐藏输入元素是否放置在表单中的文件输入之前

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

于 2011-06-08T05:20:49.183 回答