0

我需要实现某种文件下载队列。我打算使用 wget 进行文件下载。

我的问题是 - 下载文件后如何从 wget 获取信息?

为了做到这一点,是否可以在 wget 上设置回调或触发?

此外,欢迎您推荐一些其他的东西,而不是 wget,以便使用它来下载文件。

提前致谢, 亚历克斯

4

1 回答 1

1

如果您可以访问 wget,那么我认为您可以执行 bash 脚本,我建议您在后台运行 bash 脚本(从 php 执行的脚本)

在后台运行 bash 脚本是一个聪明的主意,因为一些大文件可能需要很长时间才能下载,所以您不会让您的用户等待文件完成,而是离开页面稍后再回来,他将查看文件是否已完成下载。

如果我要这样做,我会做的是,我将创建将运行 wget 的 bash 脚本,当它完成下载时会触发一些操作,比如更新数据库,或者运行一个 php 脚本来更新数据库并设置要下载的文件状态,或者如果您不想使用数据库,您可以让 bash 脚本在文件完成后向用户发送电子邮件,发送带有文件链接的电子邮件或类似的东西。

我不确定我是否完全明白你的想法,但我根据我认为你的意思回答了。

无论如何,这是一个示例 bash 脚本,您可以使用它来下载文件

#!/bin/bash

wget $1

SUBJECT="$1 is ready"
EMAIL="$2"

# Email text/message
EMAILMESSAGE="/tmp/emailmessage.txt"
echo "you can download your file using this link \n http://somesite/$1" > $EMAILMESSAGE
/bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE

您可以像这样从 php 执行该 bash 脚本: shell_exec("scriptfile link email &");

于 2012-04-14T16:38:33.760 回答