0

所有しているリモートサーバーから直接リンクを使用してファイルをダウンロードするPHPスクリプトがあります。大きなファイル(〜500-600 MB)と小さなファイル(〜50-100 MB)の場合があります。

スクリプトからのいくつかのコード:

$links[0]="file_1";
$links[0]="file_2";
$links[0]="file_3";

for($i=0;$i<count($links);$i++){

    $file_link=download_file($links[$i]); //this function downloads the file with curl and returns the path to the downloaded file in local server
    echo "Download complete";
    rename($file_link,"some other_path/..."); //this moves the downloaded file to some other location
    echo "Downloaded file moved";
    echo "Download complete";

}

私の問題は、大きなファイルをダウンロードしてWebブラウザーからスクリプトを実行すると、完了するまでに最大5〜10分かかり、スクリプトが「ダウンロード完了」までエコーしてから完全に停止することです。スクリプトが終了する前にダウンロードされていたファイルが100%ダウンロードされていることにいつも気づきます。

一方、Webブラウザから50〜100 MBのような小さなファイルをダウンロードしたり、コマンドシェルからスクリプトを実行したりすると、この問題はまったく発生せず、スクリプトは完全に完了します。

私はこれに自分のVPSを使用しており、サーバーに時間制限はありません。致命的なエラーやメモリ過負荷の問題はありません。

ssh2_sftpまた、リモートサーバーからファイルをコピーするために使用しました。しかし、Webブラウザから実行した場合も同じ問題が発生します。それは常にファイルをダウンロードし、次の行を実行してから死にます!非常に奇妙な!

この問題を解決するにはどうすればよいですか?

4

1 に答える 1