我一直在网上阅读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,它返回正确的数组,包含所有细节等。
我做错了什么?
感谢。
答案 0 :(得分:2)
当发生这种情况时,要检查的是,带有APC_UPLOAD_PROGRESS键的隐藏输入元素在表单中输入文件之前会立即 。
我知道上面示例中的表单确实这样做了,但是在更复杂的表单布局中很容易错过。