php - AJAX - 执行的 shell 命令的进度条

标签 php ajax linux shell progress-bar

我在我的网站上使用 AJAX,我想向用户显示我的服务器正在下载的文件的进度。

下载是通过向 shell 输出百分比 的脚本完成的。我想使用 AJAX 将此信息传回给用户。我该怎么做?

感谢您的帮助和指导。

我希望您的解决方案不涉及写入文本文件并从文本文件中检索该百分比!!我想太多了。

编辑 - 更多信息

这是一个 Linux Shell 命令 - Fedora Core 10。

目前 shell 输出是这样的:

[download]   9.9% of 10.09M at 10.62M/s ETA 00:00

百分比发生变化,我希望捕获它并在发生变化时将其发回给用户。

为了执行此操作,我使用了 PHP 的 exec() 函数。

最佳答案

您可以使用 popen 而不是 exec .这将为您提供一个句柄,您可以将其与 fread 一起使用,以获取命令生成的输出。

您需要解析它对百分比指示器所做的更新。获得这些数据后,您可以通过多种方式将其提供给客户,例如使用“comet”样式推送,或使用 Ajax 请求轮询更新。

关于php - AJAX - 执行的 shell 命令的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513793/

相关文章:

javascript - 如何获取附加到 AJAX 请求的事件的元信息?

php - 使用 Jquery UI datepicker 过滤 MySQL 查询

php - 使用 PHP 的 Paypal 订阅检查非托管按钮

javascript - Jquery AJAX id 选择器和带有更改类的帖子

jquery - 如何防止ajax调用延长 session 超时?

linux - 将 stderr 重定向到记录器,然后重定向到文件

c - 服务数据库文件和 getservbyname_r() 函数

python - 永远运行 Flask 应用程序,即使在重新启动后也是如此

php - 将 JSON 解析数组转换为 CSV

php - Charset=utf8 在我的 PHP 页面中不起作用