【问题标题】:How to forward progress bar of scp using ajax/php?如何使用 ajax/php 转发 scp 的进度条?
【发布时间】:2011-10-29 08:48:41
【问题描述】:

我要去

  • 从网络浏览器启动下载 (scp user@remote.computer.com/tmp/file /backup/)
  • ajax(可以是 jQuery)对 Web 服务器(suse)的请求
  • php 将运行 scp 命令的位置

有什么方法可以让用户在浏览器中看到 scp 下载进度条?

【问题讨论】:

    标签: php ajax jquery scp


    【解决方案1】:

    不是没有很多乱七八糟的东西。

    在我的脑海中,您可以将 SCP 的输出重定向到一个文件,然后向解析该文件的脚本发出 AJAX 请求,当出现新行时(假设 scp 通过分隔行来增加它的进度条\r) PHP 脚本以某种方式退出,指示浏览器增加它的进度条,然后再次启动 AJAX 进程……依此类推,直到 scp 终止。

    我以前做过这样的事情,我想说,为了这么小的细节付出巨大的努力是不值得的——除非你觉得你已经没有足够的工作要做......

    如果浏览器允许您在ajax.readyState == 4 之前阅读ajax.responseText,那么做这样的事情会容易得多,但他们不会,所以不是。

    编辑

    只是想到了一种替代方法,在某些方面可能更容易,但在其他方面更困难:

    如果您将进度条放在<iframe> 中,您就不需要进行大量的 AJAX 调用,您可以通过服务器推送 javascript 来完成这一切 - 但您需要一个支持此功能的 Web 服务器,并且在某种程度上依赖于可以明智地处理设置的浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 2023-04-03
      • 2012-04-10
      • 2013-08-06
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      相关资源
      最近更新 更多