【发布时间】:2011-10-29 08:48:41
【问题描述】:
我要去
- 从网络浏览器启动下载 (scp user@remote.computer.com/tmp/file /backup/)
- ajax(可以是 jQuery)对 Web 服务器(suse)的请求
- php 将运行 scp 命令的位置
有什么方法可以让用户在浏览器中看到 scp 下载进度条?
【问题讨论】:
我要去
有什么方法可以让用户在浏览器中看到 scp 下载进度条?
【问题讨论】:
不是没有很多乱七八糟的东西。
在我的脑海中,您可以将 SCP 的输出重定向到一个文件,然后向解析该文件的脚本发出 AJAX 请求,当出现新行时(假设 scp 通过分隔行来增加它的进度条\r) PHP 脚本以某种方式退出,指示浏览器增加它的进度条,然后再次启动 AJAX 进程……依此类推,直到 scp 终止。
我以前做过这样的事情,我想说,为了这么小的细节付出巨大的努力是不值得的——除非你觉得你已经没有足够的工作要做......
如果浏览器允许您在ajax.readyState == 4 之前阅读ajax.responseText,那么做这样的事情会容易得多,但他们不会,所以不是。
编辑
只是想到了一种替代方法,在某些方面可能更容易,但在其他方面更困难:
如果您将进度条放在<iframe> 中,您就不需要进行大量的 AJAX 调用,您可以通过服务器推送 javascript 来完成这一切 - 但您需要一个支持此功能的 Web 服务器,并且在某种程度上依赖于可以明智地处理设置的浏览器。
【讨论】: