私のサーバーに大量の画像をダウンロードし、ダウンロードが終了したときにユーザーに通知
-
18-09-2019 - |
質問
私は自分のサーバーに大量のファイルをダウンロードしたいです。私はそれらを置くために、異なるダウンロードするファイルと場所のリストを持っています。このすべては、私はもしくはshell_execでこれを実行し、ファイルをダウンロードするためにwgetコマンドを使用し、問題はありません。
$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);
これは素晴らしい作品、サーバーは、すべてのスレッドを起動し、ファイルが無い時にダウンロードされます。
問題は、私は、ファイルがダウンロードされ、ユーザーに通知するようにしたい...そして、これは物事の私の現在の方法では動作しません、です。それでは、どのようにこれを実装するのでしょうか?
任意の提案を参考になる!
解決
私はあなたがすべてのファイルが
のようなものと整っているかどうかを確認することができることを推測function checkFiles ()
{
foreach ($_SESSION["targetpaths"] as $p)
{
if (!is_file($p)) return false;
}
return true;
}
今あなたがしなければならないすべては毎秒(またはそう)この関数を呼び出して、サーバー上でスクリプトを呼び出すことです。あなたはメタリフレッシュ(n秒後にページをリロードするには、ブラウザを強制的に)、または(例えば、jQueryの.getJSON
を見て)AJAXを使用することによって、これを達成することができます。
スクリプトが呼び出され、ファイルがまだありませんされている場合は、すべてダウンロードし、「しばらくお待ちください」と、後に再びリフレッシュなどの印刷何か。そうでなければ、成功メッセージが表示されます。すべての厥ます。
他のヒント
あなたは、外部wgetコマンドを実行するためにのexecするの使用を検討することができます。あなたのPHPスクリプトは、外部コマンドが完了するまでブロックします。それが完了したら、完成したファイルの名前をエコーすることができます。
所属していません StackOverflow