【问题标题】:PHP and APC, File Upload Progress not Cacheing?PHP和API,文件上传进度不缓存?
【发布时间】:2010-06-29 03:09:01
【问题描述】:

我一直在互联网上阅读 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,它返回正确的数组,包括所有细节等等。

我做错了什么?

谢谢。

【问题讨论】:

标签: php file-upload apc


【解决方案1】:

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

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

【讨论】:

  • 很遗憾这个答案没有被接受。我不知道隐藏输入必须在文件输入之前。
猜你喜欢
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-18
相关资源
最近更新 更多