【问题标题】:How to get upload progress using $_FILES? [duplicate]如何使用 $_FILES 获取上传进度? [复制]
【发布时间】:2013-03-19 09:47:21
【问题描述】:

HTML:

                        <input type="file" value="choose file" name="file[]" multiple="multiple"/><br/>
                        <input type="submit" class="submit" value="confirm" />
                        <input type="hidden" name="uploadFiles" />

</form>

PHP:

if (isset($_POST['uploadFiles'])) {
  $fileCount = count($_FILES["file"]["name"]);
  for ($i = 0 ; $i < $fileCount ; $i++ ) {
      checking......
       move_uploaded_file($_FILES["file"]["tmp_name"][$i],$fileName);
  }
}

目前我正在使用上述方式上传文件,我发现Jquery UI提供了进度条功能,但我必须向它提供上传状态。因此,我可以选择什么方法来获得状态?

【问题讨论】:

标签: php javascript jquery html ajax


【解决方案1】:

我的建议是下载一个已经构建好的 ajax 文件上传脚本并研究一下,因为它们很复杂,无法粘贴作为回复。

我刚刚看了我的脚本,似乎它的进度实际上是在 JS 方面,而不是在 php 中。

如果你已经升级到 php 5.4 你可以使用

http://www.php.net/manual/en/session.upload-progress.php

【讨论】:

  • 感谢您提出 PHP 解决方案,对不起,我在实现中很困惑,这是否意味着我需要做的是使用一个 while 循环并执行 ini_get for,比如说,1 秒,然后得到已处理/总百分比并传递到 jquery ui 进度条?
【解决方案2】:

如果你有 PHP 5.4,你可以使用这个方法。 查看php网站上的信息:http://php.net/manual/en/session.upload-progress.php

如果您不在 PHP 5.4 中,可以使用 APC 完成相同的操作 看看这个:http://www.ibm.com/developerworks/library/os-php-v525/index.html

然而,许多 jQuery 插件使用嵌入式 flash,它们可以从中检索信息。 如前所述:Uploadify

【讨论】:

  • 感谢您提出 PHP 解决方案,对不起,我在实现中很困惑,这是否意味着我需要做的是使用一个 while 循环并执行 ini_get for,比如说,1 秒,然后得到已处理/总百分比并传递到 jquery ui 进度条?
  • 你需要在 JavaScript 中定义各种超时,(setTimeout)并定期检查进度,直到你知道它结束了。
  • 就是说用ajax调用checking.php,那个php就是执行ini,把进程字节格式化成%?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2017-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多