我需要实现某种文件下载队列。我打算用wget进行文件下载。
我的问题是 - 如何在下载文件时从wget获取信息?
为了做到这一点,是否可以在wget上设置回调或触发器?
此外,欢迎您推荐一些其他东西而不是wget,以便将其用于文件下载。
提前致谢, 亚历
答案 0 :(得分: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&amp;”);